我使用jsr-352编写了我的工作并将其部署在wildfly上。如何在最后结束时间之后安排一个工作延迟一段时间,例如下面的时间线=
是执行时间而-
是延迟时间:
===============--=====--========--
注意:最大作业执行次数是一次
答案 0 :(得分:1)
JBeret ejb调度程序支持重复间隔作业执行,具有固定的间隔持续时间或在作业开始执行后的某个延迟持续时间。目前不支持在作业执行结束后延迟。如果您的作业执行持续时间相对可预测,则可以在作业开始执行后以间隔或延迟对其进行近似。
要通过更好的控制来实现这种作业schedulgin,您可以尝试以下方法:
afterJob()
方法应该能够查找或注入TimerSchedulerBean
,这是一个本地单例EJB,并调用其org.jberet.schedule.TimerSchedulerBean#schedule
方法。作业监听器负责创建org.jberet.schedule.JobScheduleConfig
的实例,在调用ejb业务方法时传递它。作业监听器应该已经拥有所有信息来创建JobScheduleConfig
。