分布式任务调度项目xxl-job
创始人
2024-02-07 12:44:15
0

xxl-job简介

分布式任务调度项目xxl-job的官网:分布式任务调度平台XXL-JOB

大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

常见使用场景如下:

  • 同一服务多个实例的任务存在互斥时,需要统一协调、调度,任务分布式执行
  • 定时任务的执行需要支持高可用、监控运维、故障告警
  • 需要统一管理和追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人

主要特性:

1.3 特性

1、执行失败可以查看日志

2、支持邮件报警

3、路由策略支持轮询等策略,可以减轻执行服务器的压力

4、轮询时间等参数修改后立即生效

5、执行器有问题或新增,快速识别

6、调度中心高可用,调度中心可以集群部署(集群部署的机器时钟必须同步),如果调度中心没有做负载在执行器的配置中需要配多个地址,如果调度中心配置负载则执行器配置负载地址即可

7、执行器高可用(执行器可以集群部署)

xxl-job架构图

       核心模块  (1)调度中心 (2) 执行器,类似schedule运行所在的机器。

        调度中心负责将任务,分发到执行器执行。

  • 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。
  • 执行模块(执行器):负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;接收“调度中心”的执行请求、终止请求和日志请求等。

 

集群化部署

         部署多台调度器和执行器。或者在配置文件中写多个调度中心地址。

 

日常开发中使用xxl-job

  1. 开发计划任务

通常我们使用spring的schedule处理计划任务,替换为xxl-job操作步骤

LidarFileSizeSyncService.java 为例, 代码中有spring的schedule定时任务

 @Scheduled(cron = "0 0/1 * * * ?")

 public void lidarFileSizeSync() {

.....

}

将   @Scheduled(cron = "0 0/1 * * * ?") 调用改为

 @XxlJob("lidarFileSizeSync")   任务名称自定,但是相同执行器appname下,不能重复。

2  调度中心新增开发的计划任务

登录调度中心,测试环境调度中心为

http://localhost:8081/xxl-job-admin

进入登录界面,帐号默认 admin ,密码默认 123456 

 

点”新增“按钮

 

 在新增界面增加,任务信息

 其中关键项为 任务执行时间

 任务名JobHandler必须与 XxlJob名一致。 任务描述,描述任务的功能说明,负责人,填写开发负责功能的人员名称。

 

如果,添加周期性执行任务,在“调度类型”项,选择 固定速度,周期单位为秒。

3. 管理任务状态

此时任务默认是STOP状态 , 此时可以先在操作按钮,点”执行一次“,查询日志等操作,然后再把任务设置为启动状态。

 

执行完成后,可以查看执行日志,点查看可以看到任务执行情况,是哪个调度器执行的等信息。

如果使用 任务中也可以使用  XxlJobHelper.log("======lidarFileSizeSync."); 

在执行器中的 xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler ,也可以看到执行的日志。

 

示例代码

基于springboot执行器示例

链接:https://pan.baidu.com/s/1-0H4C6_2wJLtAmxTbeyd6w?pwd=lb9l 
提取码:lb9l

执行器代码配置说明

### 调度中心服务器地址 "http://address" ,如果地址为空,不注册为执行器。 有多个地址使用逗号分开 "http://address01,http://address02"
xxl.job.admin.addresses=http://172.30.1.17:8081/xxl-job-admin
### 执行器名称,根据项目定义名称[小屏 executor-auto,大屏 executor-dgtn]
xxl.job.executor.appname=xxl-job-executor-sample
### 任务执行器端口,如果端口设置为0,执行器会自动使用一个空闲端口
xxl.job.executor.port=0
### 执行器日志目录
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 日志保留时间
xxl.job.executor.logretentiondays=7

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...