积分中心
Quartz 定时任务:避免多实例重复执行
头像 ccai 2026-09-24 16:35:51    发布
0 浏览 0 点赞 0 收藏

服务端部署多个实例后,简单的 @Scheduled 任务可能在每台机器上同时执行。例如每天生成一次统计报表,结果被重复生成。

可以使用 Quartz 集群模式或数据库锁控制执行权。任务本身还要设计幂等标识:

String taskKey = "daily-report:" + LocalDate.now();
if (taskLogRepository.exists(taskKey)) {
    return;
}
taskLogRepository.create(taskKey);
reportService.generate(LocalDate.now());

如果任务执行到一半进程崩溃,需要定义重试和恢复策略。不能只依赖内存变量记录执行状态。

测试多实例同时启动、任务执行中断、数据库短暂不可用和重复触发。


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
IDE
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255