分布式任务调度项目xxl-job的官网:分布式任务调度平台XXL-JOB
大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
1、执行失败可以查看日志
2、支持邮件报警
3、路由策略支持轮询等策略,可以减轻执行服务器的压力
4、轮询时间等参数修改后立即生效
5、执行器有问题或新增,快速识别
6、调度中心高可用,调度中心可以集群部署(集群部署的机器时钟必须同步),如果调度中心没有做负载在执行器的配置中需要配多个地址,如果调度中心配置负载则执行器配置负载地址即可
7、执行器高可用(执行器可以集群部署)
核心模块 (1)调度中心 (2) 执行器,类似schedule运行所在的机器。
调度中心负责将任务,分发到执行器执行。
部署多台调度器和执行器。或者在配置文件中写多个调度中心地址。
开发计划任务
通常我们使用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