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,.... 想问下这个问题要怎么解决?就是让它恢复到,到达正确的时间才开始执行,不要把等待的那段时间给执行了
1
kkkkkrua 2019-01-04 15:55:27 +08:00
你只是暂停了任务输出,但是触发器还是在运行的。
|
2
shayang888 OP @kkkkkrua pauseTrigger 这个操作也并没有用
|
3
M1nnG 2019-01-11 16:18:47 +08:00 1
我记得暂停任务然后恢复会根据你设置的频率执行 N 次,暂停直接把触发器删了 然后恢复动作再重绑触发器。
|