定时任务--xxlj-ob
xxl-job
随着定时任务的数量和耗时增加,发现quartz对项目本身有较大的性能影响,虽然定时任务触发时间一般为晚上,但是对于有先后顺序和数据量大的处理极有可能影响用户体验,所以在寻找开源替代品中发现了xxl-job,它配置简单使用方便很适合中小型公司。
官网: https://gitee.com/shring/xxl-job/
xxl-job也需要自己的数据库表并,使用的是mysql
依赖
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>1.6.1</version>
</dependency>
在官方代码中需要注意三个文件即可
配置类XxxlJobConfig
直接复制即可
SampleXxlJob
:XxlJob开发示例(Bean模式)里面有很多实例方案,我本次使用的是分片方案
/**
* 2、分片广播任务
*/
@XxlJob("shardingJobHandler")
public void shardingJobHandler() throws Exception {
// 分片参数
int shardIndex = XxlJobHelper.getShardIndex();
int shardTotal = XxlJobHelper.getShardTotal();
XxlJobHelper.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardIndex, shardTotal);
// 业务逻辑
for (int i = 0; i < 20; i++) {
if (i % shardTotal == shardIndex) {
XxlJobHelper.log("第 {} 片, 命中分片开始处理", i);
} else {
XxlJobHelper.log("第 {} 片, 忽略", i);
}
}
}
@XxlJob("")
注解是xxl-job的核心,只要配置这个就可以将这个方法交给它管理
自己使用只需要复制方法,给job命名,根据自己的分片策略调用业务逻辑即可
applicationl配置
xxl:
job:
admin:
#xxl-job的地址,如果有多个地址,用逗号分隔开
addresses: http://127.0.0.1:8083/xxl-job-admin
accessToken:
executor:
# xxl-job执行器的名字
appname: plan-exec
address:
#执行器ip,选填,为空会自动获取ip
ip:
#执行器端口号,选填,为空默认为9999
port: 9993
#执行器日志保存天数,选填,值大于3时生效
logretentiondays: 30
#执行器运行日志文件存储磁盘路径,选填,为空使用默认路径
logpath: xxl-job
本文作者:萌新来报道
本文链接:https://www.cnblogs.com/liu-lin/p/16241339.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)