在石英调度程序中,我有一个疑问
例如
如果我们每5分钟或10分钟或2小时安排工作,我们可以使用常规时间间隔调用调度程序,如下所示,
SimpleTrigger simpleTrigger = new SimpleTrigger("mytrigger",sched.DEFAULT_GROUP,new Date(),null,SimpleTrigger.REPEAT_INDEFINITELY,30L*5000L);
但是,如果我今天计划工作@ 2'0时钟和3'0时钟,那么我将它改为5'0时钟和7'0时钟以及11'0时钟,我的疑问是如果我们调用固定时间间隔它在上面的方式,但它没有固定或周期性间隔我们如何处理它。关于我的查询的任何建议或想法或例子......
答案 0 :(得分:0)
您可以做的是定义文件或数据库中的间隔并从那里读取。
还要定义JobListener。
将间隔值存储在JobDataMap中,每次作业开始时,使用侦听器方法jobToBeExecuted()并读取文件/ DB中的值,并将其与{{1}中的值进行比较}}
如果它们相同,则不进行更新并且作业运行,如果更改,则使用JobDataMap
重新安排作业。
请注意,此方法存在一些问题,配置只会在作业运行后更改,因此即使您更新文件/数据库,下一次运行仍将是旧时间,并且仅在此之后运行将在新时代。