我定义了一个simpleTrigger。 repeatInterval是10秒。
我注意到在某种情况下,在一次事件发生后,它立即发射了另一个事件(不是10秒后),第三次甚至在10秒后发射。
对发生的事情有什么想法,以及如何纠正这种行为? 我不知道它是否是一个错误的情况(我没有看到错误),如果它是如何纠正这种行为,我不希望事件在那之后立即被触发。
运行程序时,我看到作业的触发时间为1365178800586毫秒。
然后在1365178800593毫秒被解雇,即大约在同一时间。
随后以1365178810583毫秒发射,即在第一次通话后约10秒发射。
Java code snippet:
String testJobname = "testJob";
JobDetail testJobDetail = new JobDetail();
testJobDetail.setGroup(this.getClass().getName());
testJobDetail.setName(testJobname);
testJobDetail.setJobClass(TestJob.class);
final JobDataMap data = new JobDataMap();
data.put(CheckLimits.class.getName(), checkLimitsCmd);
testJobDetail.setJobDataMap(data);
Trigger testTrigger = new SimpleTrigger(testJobDetail.getName(),
testJobDetail.getGroup(), SimpleTrigger.REPEAT_INDEFINITELY,
10000);
答案 0 :(得分:1)
首先,我认为您应该使用TriggerBuilder和ScheduleBuilder,而不是直接实例化SimpleTrigger。
Schedule schedule = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(10).build();
Trigger trigger = TriggerBuilder.newTrigger().forJob(testJobDetail).usingJobData(data).withSchedule(schedule).build();
Quartz文档在Javadoc代码中有一些很好的例子,请查看这些以获取更多信息 - http://quartz-scheduler.org/api/2.0.0/org/quartz/SimpleScheduleBuilder.html