黑马头条day11-热点文章定时计算

本文介绍了热点文章的需求分析,包括基于阅读、点赞、评论和收藏的热度计算方法。重点讲解了xxl-job的使用,包括配置、部署和任务调度,以及如何利用cron表达式实现定时计算。还探讨了分布式任务调度的高级功能,如分片广播路由策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、热点文章需求及实现方案

1.1 需求分析

判断文章是否是热点,有几项标准:
阅读数量(权重1)
点赞数量(权重3)
评论数量(权重5)
收藏数量(权重8)
文章分值=行为数量*对应权重结果相加之和
分值高低决定文章是否是热点文章,分值排名前30的都是热点文章

计算热点文章,有两种方案:

  • 定时计算热点文章
  • 实时计算热点文章

1.2 定时计算

在这里插入图片描述

  • 每天按时准点根据文章的行为(点赞、评论、阅读、收藏)计算文章的分值
  • 把分值排名前30的文章安分值倒排序数据存入redis中
  • App端用户查询文章列表中,优先从redis中查询热度较高的文章数据

二、分布式任务调度技术

2.1 什么是任务调度

我们可以先思考一下业务场景的解决方案:

  • 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。
  • 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。
  • 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。
  • 12306会根据车次不同,设置某几个时间点进行分批放票。

以上业务场景的解决方案就是任务调度
任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力,而是由系统自动取执行任务。

如何实现任务调度?

  • JDK提供的API,例如:Timer、ScheduledExecutor
  • 框架,体乳Quartz,它是一个功能强大的任务调度框架,可以满足更多更复杂的调度需求
  • SpringTask

2.2 cron表达式

cron表达式是一个字符串,用来设置定时规则,有其部分组成,每部分中间用空格隔开,每部分的含义如下表所示:
在这里插入图片描述
cron表达式还可以包含一些特殊符号来设置更加灵活的定时规则,如下表所示
在这里插入图片描述
下面列举了一些例子,如下表所示:
在这里插入图片描述

2.3 什么是分布式任务调度

在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度
在这里插入图片描述

三、xxl-job调度技术使用

3.1 xxl-job简介

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
源码地址:https://gitee.com/xuxueli0323/xxl-job
文档地址:https://www.xuxueli.com/xxl-job/

在这里插入图片描述

3.2 配置部署调度中心-docker安装

1、启动xxl-job容器

docker starter xxl-job-admin

2、启动调度中心,访问地址http://192.168.200.130/xxl-job-admin
登录账号 “admin/123456”
3、xxl-job数据库表
在这里插入图片描述

3.3 xxl-job架构图

在这里插入图片描述调度中心会发出调度请求,任务执行器接收到请求之后会去执行任务,任务则专注于任务业务的处理
调度中心: 就是这个管控平台在这里插入图片描述

执行器: 用来执行业务对应的微服务

3.4 具体实现

①:在xxl-job-admin调度中心配置执行器和任务

在这里插入图片描述
在这里插入图片描述

②:添加xxl-job依赖(heima-leadnews-test提供了xxl-demo工程)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值