quartz 在 pauseJob 后再 resumeJob 会触发多次 execute 的问题有人遇到过吗

2019-01-04 15:22:56 +08:00
 shayang888
JobDetail jobDetail = JobBuilder.newJob(QuartzStudy.class).withIdentity("job1").build();
        Trigger trigger = TriggerBuilder.newTrigger()
                .startAt(DateBuilder.evenSecondDate(new Date()))
                .withSchedule(CronScheduleBuilder.cronSchedule("*/5 * * * * ?").withMisfireHandlingInstructionDoNothing())
                .build();
        scheduler.scheduleJob(jobDetail, trigger);
        Thread.sleep(10000);
        System.out.println("暂停");
        scheduler.pauseJob(jobDetail.getKey());
        Thread.sleep(10000);
        System.out.println("恢复");
        scheduler.resumeJob(jobDetail.getKey());

在 pauseJob 后等待 10s 恢复后会立刻执行 2 次 job,等待 20s 恢复后会执行 4 次 job,.... 想问下这个问题要怎么解决?就是让它恢复到,到达正确的时间才开始执行,不要把等待的那段时间给执行了

3587 次点击
所在节点    Java
3 条回复
kkkkkrua
2019-01-04 15:55:27 +08:00
你只是暂停了任务输出,但是触发器还是在运行的。
shayang888
2019-01-04 16:09:11 +08:00
@kkkkkrua pauseTrigger 这个操作也并没有用
M1nnG
2019-01-11 16:18:47 +08:00
我记得暂停任务然后恢复会根据你设置的频率执行 N 次,暂停直接把触发器删了 然后恢复动作再重绑触发器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523889

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX