旅游项目day07
目的地攻略展示
根据目的地和主题查询攻略
攻略条件查询
攻略排行分析
- 推荐排行榜:点赞数+收藏数 取前十名


- 热门排行榜:评论数+浏览数 取前十名 浏览数跟评论数差距过大,可设置不同权重,例如:将浏览数权重设置为0.3,评论数权重设置为0.7。

如果是小表,以上的sql没太大问题。
但是,,如果表的数据量非常大?
排序,运算会导致mysql性能大大降低。
如何解决性能问题? - mysql性能优化。
-
给需要排序的字段,加索引
但是,对索引列做任何运算,(concat + - * /)等操作,都会导致索引失效,仍会出现性能问题。但是因为必须要用到的算法,所以必须要做运算。如何解决?如何优化?
不实时! 排行榜不是实时更新,比如半个小时更新一次。
把实时查询的数据,变成不实时的数据。
半个小时查询一次后,将数据放到另外一张表,或者放到redis。优化方案:将原本实时查询的数据,变成每10分钟统计一次,将统计后的数据放到一张更新的表中,之后查询排行榜信息时,直接查询新的表即可。
新的表如何设计?
id,dest_id,dest_name,strategy_id,strategy_title,num,type,status_time
统计数量 统计时间如何实现每10分钟去做一个事情?
定时任务。
定时统计方案:
1. TimerTask | ScheduledThreadPoolExecutor:JDK自带的定时任务类 不支持分布式
2. Spring Scheduled:任务调度组件,quartz
3. 分布式任务调度组卷:xxl-job,elastic-job 需要引入额外的服务
如何抉择?
Spring的定时任务。
Spring定时任务示例代码:每个两秒打印一次时间

每隔一段时间。
需要新创建一个服务。为什么?
如果在文章服务开启定时任务,会导致占用一定的cpu,对性能有一定的影响。
故新创建一个数据服务(travel-data-server)。新建一个定时任务类,@Component交给Spring容器管理。
启动类加@EnableScheduling
定时任务类方法加@Scheduled()注解。
corn表达式,是linux里面的一个机制。秒,分钟,小时,月中某日,月,周中某日
corn表达式口诀: “秒分时日月周”
-
Cron表达式用于指定计划任务(如在Unix、Linux和Spring框架中的定时任务)的执行时间。
要创建一个在每个工作日(星期一到星期五)凌晨两点执行的Cron表达式,你可以使用以下格式:0 2 * * 1-5这个表达式的各部分意义如下:- `0` 分钟:表示在小时的开始时刻(即每小时的第0分钟)。
- `2` 小时:表示凌晨2点。
- `*` 日:表示每天。
- `*` 月:表示每个月。
- `1-5` 星期:表示星期一到星期五。所以,这个Cron表达式代表着“在每个月的每天,
如果是星期一到星期五,那么在凌晨2点执行任务”。这正符合你的要求。
示例:


不一定非要去琢磨透corn表达式,工具是为我们提高效率而服务的,可借助corn表达式生成工具去生成。
实现:

改写为函数式编程:

如何排序?
相关文章:
旅游项目day07
目的地攻略展示 根据目的地和主题查询攻略 攻略条件查询 攻略排行分析 推荐排行榜:点赞数收藏数 取前十名 热门排行榜:评论数浏览数 取前十名 浏览数跟评论数差距过大,可设置不同权重,例如:将浏览数权重设置为0.3…...
java黑马学习笔记
数组 变量存在栈中,变量值存放在堆中。 数组反转 public class test{public static void main(String[] args){//目标:完成数组反转int[] arr {10,20,30,40,50};for (int i 0,j arr.length - 1;i < j;i,j--){int tep arr[j]; //后一个值赋给临时…...
WordPress后台底部版权信息“感谢使用 WordPress 进行创作”和版本号怎么修改或删除?
不知道各位WordPress站长在后台操作时,是否有注意到每一个页面底部左侧都有一个“感谢使用 WordPress 进行创作。”,其中WordPress还是带有nofollow标签的链接;而页面底部右侧都有一个WordPress版本号,如下图中的“6.4.2 版本”。…...
解决字符串类型转数字类型相加结果异常问题
js字符串类型转换数字类型有七种方法,分别是parseInt(),parseFloat(),Math.floor(),乘以数字(*1),Number(),双波浪号 (~~number),一元运算符(numberÿ…...
android 开发 W/TextToSpeech: speak failed: not bound to TTS engine
问题 笔者使用TTS(TextToSpeech)对于文本内容进行语音播报,控制台报错 android 开发 speak failed:not bound to TTS engine详细问题 笔者核心代码: import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.…...
Java代码审计Shiro反序列化DNS利用链CC利用链AES动态调试
目录 0x00 前言 0x01 Java原生反序列化介绍 0x02 安全问题1:重写toString方法(打印对象时触发) 0x03 安全问题2:重写readObject(反序列化时触发) 0x04 测试URLDNS链 0x05 Shiro550生成RememberMe Coo…...
【MySQL】临时变量用法
力扣题 1、题目地址 2388. 将表中的空值更改为前一个值 2、模拟表 表:CoffeeShop Column NameTypeidintdrinkvarchar id 是该表的主键(具有唯一值的列)。该表中的每一行都显示了订单 id 和所点饮料的名称。一些饮料行为 null。 3、要求…...
Flask框架小程序后端分离开发学习笔记《4》向服务器端发送模拟请求-爬虫
Flask框架小程序后端分离开发学习笔记《4》向服务器端发送模拟请求-爬虫 Flask是使用python的后端,由于小程序需要后端开发,遂学习一下后端开发。 下面代码,是一个比较老的版本了,可以借鉴一下。 import socket import ssldef p…...
Android在系统界面上添加窗口
WindowManager.addView()是Android中的一个方法,用于在屏幕上添加一个窗口。它允许你在应用程序的上下文之外创建一个窗口,并将其显示在其他应用程序或系统界面上。 新建一个自定义View用于显示 class MyView JvmOverloads constructor(context: Contex…...
【正点原子STM32】STM32原理图设计(芯片手册和数据手册、常见引脚类型、最小系统和IO分配)
一、学会查看数据手册 获取芯片数据手册数据手册内容概要芯片的基本参数(STM32F103ZET6为例)正点原子开发板对应的主控型号和封装STM32F103ZET6引脚分布常见的STM32引脚类型下载接口 二、最小系统 电源电路复位电路BOOT启动电路晶振电路下载调试电路串…...
低代码自动化平台| 游戏规则改变者
自动化测试对于软件开发公司起着非常重要的作用。它在公司及其客户之间建立了对优质产品的信任。此外,它还使软件开发人员更加自信,因为他们可以在其他模块上工作,而不必担心应用程序的任何现有功能是否存在错误。在软件测试中融入自动化是必…...
【分享】MathWorks中国汽车年会:“软件定义汽车”
从软件赋能到软件定义,汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题,也面临着新的挑战:软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…...
RNN:Long Short-term Memory(中)
目录 1 LSTM 的简图 2 LSTM 的整体结构 2.1 结构图 2.2 流程图 3 举个例子 3.1 简单看看 3.2 代入 LSTM 4 Original Network v.s. LSTM 5 细看 LSTM 原视频:李宏毅 2020:Recurrent Neural Network (Part I) 1 LSTM 的简图 LSTM 实际…...
C# .NET读取Excel文件并将数据导出到DataTable、数据库及文本
Excel文件是存储表格数据的普遍格式,因此能够高效地读取和提取信息对于我们来说至关重要。C#语言借助.NET Framework和各种库的广泛功能,能够进行高效的数据操作。利用C#读取Excel文件并将数据写入数据库和DataTable,或者将数据用于其他目的&…...
移动云助力智慧交通数智化升级
智慧交通是在整个交通运输领域充分利用物联网、空间感知、云计算、移动互联网等新一代信息技术,综合运用交通科学、系统方法、人工智能、知识挖掘等理论与工具,以全面感知、深度融合、主动服务、科学决策为目标,推动交通运输更安全、更高效、…...
【Vue技巧】vue 阻止a链接跳转事件的两种方法
ChatGPT4.0国内站点,支持设计稿转代码:https://www.atalk-ai.com/ 在Vue中,如果你想阻止<a>链接的默认跳转事件,你可以使用click.prevent或者click配合.prevent修饰符。这样做可以阻止链接的默认行为,即不会跳转…...
006.Oracle事务处理
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
成功解决VScode进入到内置函数中调试
主要有两个关键步骤, 第一步 将launch.json中的"justMyCode"设为false 可通过使用ctrlshiftP搜索lauch.json找到次文件 如果找不到的话,可点击debug按钮,然后找到点击create a launch.json file创建 创建得到的launch.json如下&am…...
29、WEB攻防——通用漏洞SQL注入增删改查盲注延迟布尔报错
文章目录 盲注增删改查 盲注 概念:在注入过程中,获取的数据不能回显至前端页面,此时我们需要利用一些方法进行判断或尝试,这个过程被称为盲注。 解决:常规的联合查询注入不行的情况。 分类: 基于布尔的SQ…...
【设计模式 行为型】策略模式
它允许在运行时根据需要选择算法的行为。该模式通过将算法封装成独立的类,使得它们可以相互替换,而不影响使用算法的客户端代码。 策略模式主要包含以下角色: 环境(Context):环境对象持有一个策略对象的引…...
告别‘塑料感’渲染:IBGS如何用‘颜色残差’让3D高斯重建的物体更真实?
告别‘塑料感’渲染:IBGS如何用‘颜色残差’让3D高斯重建的物体更真实? 当你在虚拟场景中看到一个金属茶壶时,是否总觉得它像玩具一样缺乏真实感?这就是当前3D高斯溅射(3DGS)技术面临的"塑料感"困…...
Ubuntu 22.04 改IP重启失效?别急,可能是OVS的ovsdb-server在捣鬼
Ubuntu 22.04网络配置失效:当OVS与netplan的隐秘博弈 在虚拟化技术大行其道的今天,Open vSwitch(OVS)作为开源虚拟交换机的标杆,已经成为众多云计算平台和容器网络的核心组件。然而,当它遇上Ubuntu 22.04默…...
用STM32F103的TIM3实现旋转编码器方向判断:AB相相位差处理的5个关键细节
STM32F103旋转编码器方向判断实战:TIM3相位差处理的5个核心技巧 旋转编码器作为工业控制和人机交互中广泛使用的传感器,其方向判断的准确性直接影响系统控制的可靠性。本文将深入探讨基于STM32F103的TIM3定时器实现旋转编码器方向判断的关键技术细节&…...
seo排名大师软件好用吗
SEO排名大师软件好用吗?深入解析其优缺点 在当今数字化营销的环境中,SEO(搜索引擎优化)已成为网站提升流量、吸引潜在客户的重要手段。而SEO排名大师软件作为一种工具,是否真的能帮助我们实现目标?本文将深…...
【Agents】自定义子代理进阶:后台执行
基础篇:【Agents】Claude Code 多 Agent 入门:从一问一答到并行协作实践篇1:【Agents】Claude Code 自定义子代理:内置的不够用,就自己造实践篇2:【Agents】自定义子代理进阶:沙盒隔离 上一篇用 isolation: worktre…...
ESP32嵌入式系统工具库:运行时监控、资源池与高精度时间管理
1. 项目概述sys_utils是一个面向 ESP32 平台、深度适配 ESP-IDF(Espressif IoT Development Framework)生态的系统级工具库。其定位并非通用 C 标准库的替代品,而是聚焦于嵌入式实时系统开发中高频、易错、跨模块复用的底层支撑需求——在裸机…...
从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)
从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南) 在Qt开发中,与后端RESTful API交互是常见需求,但面对复杂、嵌套的JSON响应数据时,很多开发者容易陷入"面条代码"的泥潭。本文…...
革新性B站体验全流程优化:Bilibili-Evolved让卡顿成为历史
革新性B站体验全流程优化:Bilibili-Evolved让卡顿成为历史 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 你是否也曾遭遇这样的窘境:精心挑选的番剧在高潮时刻突然卡…...
人脸识别OOD模型在金融领域的身份验证应用
人脸识别OOD模型在金融领域的身份验证应用 1. 引言 想象一下这样的场景:一位银行客户正在通过手机APP进行大额转账,系统需要快速准确地确认他的身份。传统的人脸识别系统可能会因为光线不佳、佩戴口罩或者图像模糊而无法正常工作,甚至可能被…...
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92%
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92% 1. 引言:AI长文本理解的新突破 当我们面对动辄数千字的技术文档时,如何快速抓住核心内容一直是个难题。传统方法要么依…...
