NutzCN Logo
问答 quartz集群定时任务多节点执行
发布于 995天前 作者 wx_ummgid0rpor5a932avol 1219 次浏览 复制 上一个帖子 下一个帖子
标签:

是不是在quartz.properties加上org.quartz.scheduler.skipUpdateCheck=true这句就行了?

5 回复

问题是防止定时任务多节点执行,只要一个节点执行就行

org.quartz.scheduler.skipUpdateCheck=true是自动更新,所以是加org.quartz.jobStore.isClustered=true加入集群是嘛

@Aop("redis")
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
try {
log.info("开始执行定时任务!");
String lockKey = ActivityConstants.REDIS_KEY_LOCK;
// 随机生成一个value
String identifier = UUID.randomUUID().toString();
if (jedis().setnx(lockKey, identifier) == 1) {
log.info("正在执行定时任务!");
jedis().expire(lockKey, 3600);
}else{
log.info("定时任务已经执行,无需重复执行!");
}
} catch (Exception e){
log.error("定时任务执行异常", e);
}
}

最终是选择通过redis实现多节点只执行一次定时任务

添加回复
请先登陆
回到顶部