问题1
描述:
定时任务关闭了, 但是服务器定时任务依然在跑
原因:
若依自带定时任务有缓存,且缓存是服务器内存,不是分布式缓存。
-
单体项目:
很可能是手动修改了数据库表中的定时任务开关,但是缓存没有关闭。
-
集群项目:
项目部署在多个节点上,且每个节点绑定的数据库表是同一张表;
若依框架定时任务使用的调度器缓存是服务器内存,不是分布式缓存,所以在节点1 关闭定时任务,节点2查看的时候,展示的是关闭,但是实际上节点2内存中的开关缓存依然是开,所以结点2依然会跑。
办法:
刷新服务器内存中的缓存;
操作:
-
单体项目:
重新开启-再关闭;或者重新构建服务器部署;
-
集群项目:(k8s项目部署多个节点)
每个节点重新开启-再关闭;或者重新构建每个节点的服务器部署;
问题2
描述:
同一时刻,定时任务执行了多次;执行多次结果幂等(比如:单据本来就因为业务原因同步系统1失败,你再执行,它结果还是失败)
原因:
下面这段代码是定时任务调用的同步失败问题订单的服务方法:
public void synSrmProblemOrderFail() throws Exception {
String key = Redi

文章讨论了两个问题:1)单体/集群项目中,定时任务关闭后仍运行,源于内存缓存未清空;解决办法是刷新服务器内存或重启部署。2)同一时刻定时任务重复执行导致幂等问题,需结合业务场景确保同一节点执行,如发送短信避免重复。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



