


























在您的代码中:
trigger = newTrigger()
.withIdentity("SingleJobStockIgniteToRedis", "task_SingleJobStockIgniteToRedis")
.withSchedule(cronSchedule(cron).withMisfireHandlingInstructionDoNothing())
.build();
关键问题:
withMisfireHandlingInstructionDoNothing() 只处理触发时间已经过去的情况,不处理应用启动时的行为
Quartz默认在Scheduler启动时会立即执行所有错过的Job(missed trigger)
您的cron表达式 "17 0 15 ? * 2-6" 表示:每周二到周六的15:00:17执行
如果启动时间在这个时间点之后,Quartz会认为该Job应该被触发但错过了
startAt() 设置未来时间(推荐)trigger = newTrigger()
.withIdentity("SingleJobStockIgniteToRedis", "task_SingleJobStockIgniteToRedis")
.startAt(DateBuilder.futureDate(10, DateBuilder.IntervalUnit.SECOND))
startNow(false) 明确不立即启动trigger = newTrigger()
.withIdentity("SingleJobStockIgniteToRedis", "task_SingleJobStockIgniteToRedis")
.startNow(false)
trigger = newTrigger()
.withIdentity("SingleJobStockIgniteToRedis", "task_SingleJobStockIgniteToRedis")
.withSchedule(cronSchedule(cron)
.withMisfireHandlingInstructionDoNothing()
.withMisfireHandlingInstructionIgnoreMisfires())
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。