gpt4 book ai didi

java - quartz 触发器不会立即触发

转载 作者:行者123 更新时间:2023-11-30 01:50:43 25 4
gpt4 key购买 nike

我想使用 jdbc 数据存储通过quartz调度程序立即执行该作业。然而,即使我使用 now() 进行调度或调用 triggerJob,调度和触发触发之间也有大约 20-30 秒的延迟。

我尝试使用简单的触发器来执行该作业:

JobKey key = //...
JobDetail jobDetail = newJob(jobBean.getClass())
.withIdentity(key)
.usingJobData(new JobDataMap(jobParams))
.storeDurably()
.build();

Trigger trigger = newTrigger()
.withIdentity(key.getName(), key.getGroup())
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withMisfireHandlingInstructionFireNow()
.withRepeatCount(0))
.build();

scheduler.scheduleJob(jobDetail, trigger);

我还尝试使用调度程序触发:

 JobKey key = // ...
JobDetail jobDetail = newJob(jobBean.getClass())
.withIdentity(key)
.storeDurably()
.build();
scheduler.addJob(jobDetail, true);


scheduler.triggerJob(key, new JobDataMap(jobParams));

以下是显示延迟的监听器日志。

2019-05-15 13:59:52,066Z  INFO  [nio-8081-exec-2] c.m.f.s.logger.SchedulingListener                  : Job added: newsJobTemplate:1557928791965
2019-05-15 13:59:52,066Z INFO [nio-8081-exec-2] c.m.f.s.logger.SchedulingListener : Job scheduled: newsJobTemplate:1557928791965
2019-05-15 14:00:18,660Z INFO [eduler_Worker-1] c.m.f.s.logger.TriggerStateListener : Trigger fired: QUARTZ_JOBS.newsJobTemplate:1557928791965 {}
2019-05-15 14:00:18,703Z INFO [eduler_Worker-1] c.m.f.s.logger.JobExecutionListener : Job will be executed: QUARTZ_JOBS.newsJobTemplate:1557928791965
2019-05-15 14:00:19,284Z INFO [eduler_Worker-1] c.m.f.s.logger.JobExecutionListener : Job was executed: QUARTZ_JOBS.newsJobTemplate:1557928791965

最佳答案

我到处都发现了一些碎屑,表明问题与交易有关。所以我从服务方法中删除了@Transactional,瞧它起作用了。看起来当您调用触发器时,调度程序线程会异步尝试从数据库查找调度和触发器,但当时事务尚未提交。随后调度程序线程再次查找数据库,最终找到了它。

关于java - quartz 触发器不会立即触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com