gpt4 book ai didi

java - Quartz SimpleTrigger 事件立即触发,即使重复间隔晚了一段时间

转载 作者:行者123 更新时间:2023-12-01 14:42:13 25 4
gpt4 key购买 nike

我定义了一个 simpleTrigger。重复间隔为 10 秒。

我注意到在某些情况下,一个事件触发后,它立即触发另一个事件(不是 10 秒后),第三个事件甚至在 10 秒后触发。

知道发生了什么以及如何纠正这种行为吗?我不知道这是否是误触发情况(我没有看到错误),如果是如何纠正此行为,我不希望该事件在那之后立即触发。

运行程序时,我看到作业在 1365178800586 毫秒处触发。

然后在 1365178800593 毫秒处触发,即大约在同一时间。

随后在 1365178810583 毫秒处触发,即第一次调用后大约 10 秒。

Java 代码片段:

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);

最佳答案

首先,我认为您应该使用 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

关于java - Quartz SimpleTrigger 事件立即触发,即使重复间隔晚了一段时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839107/

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