使用xxl-job遇到的一些问题及总结

本文总结了使用XXL-JOB过程中遇到的任务重复执行、分片任务执行、执行器端口设置等问题,以及老版本的句柄数过多导致的调度失败。还探讨了新版本特性,包括自解析cron表达式、调度策略优化。并对如何避免任务重复执行、解决句柄数过多问题提出了方案。此外,介绍了团队进行的告警通道丰富、Prometheus监控、调度线程池异常处理等改造。
摘要由CSDN通过智能技术生成

1.避免任务重复执行(官方文档给出的解决,其实老版本仍然会有重复调度的问题,使用quartz的版本)

调度密集或者耗时任务可能会导致任务阻塞,集群情况下调度组件小概率情况下会重复触发;
针对上述情况,可以通过结合 “单机路由策略(如:第一台、一致性哈希)” + “阻塞策略(如:单机串行、丢弃后续调度)” 来规避,最终避免任务重复执行。

2.分片任务:一个任务在多台服务器上同时都执行,降低任务处理时间,调度器会调用配置的所有机器

3.执行器用的端口和该执行器本身的端口没有关系,在启动时可以指定执行器端口,xxljob会自己启一个服务用于调度,如果不指定该端口,默认为9999

4.遇到的问题

4.1 老版本自有bug,句柄数过多导致任务调度失败,修改源码修复
老版本GULE(shell)模式,调用远程接口时,打开连接,没有关闭资源,随着任务的执行,未关闭的句柄数越来越多,最高为65535,达到后就无法继续调度任务,重启可以解决,但是每隔一段时间就会出现该问题。
4.2 任务重复执行,有可能的原因,
1.tigger重复调度(老版本使用quartz,quartz本身bug,单台机器也可能出现重复调度)。新版本摒弃quartz,自己解析cron表达式,计算下次执行时间,单机不会重复调度;

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NY_Forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值