以上次结束日期开始的间隔安排 Java 批处理作业



我用jsr-352编写了我的作业,并将其部署在wildfly上。如何在上次结束时间之后安排一个延迟的作业,例如以下时间线,其中=是执行时间,-是延迟时间:

===============--=====--========--

注意:最大作业执行次数为 1

JBeret ejb 调度器支持重复间隔作业执行,具有固定的间隔持续时间或在作业执行开始后的特定延迟持续时间。目前不支持作业执行结束后的延迟。如果作业执行持续时间相对可预测,则可以在作业执行开始后使用间隔或延迟来近似

。要通过更精细的控制实现这种作业调度,您可以尝试以下方法:

计划
  • 单操作作业计划
  • 在 job.xml 中配置作业侦听器以监视上述作业执行的结束,并以较短的初始延迟安排下一个单操作作业执行
  • 具体来说,作业侦听器的afterJob()方法应该能够查找或注入TimerSchedulerBean,这是一个本地单例 EJB,并调用其org.jberet.schedule.TimerSchedulerBean#schedule方法。作业侦听器负责创建org.jberet.schedule.JobScheduleConfig的实例,在调用 ejb 业务方法时传递它。作业侦听器应该已经拥有创建JobScheduleConfig的所有信息。

相关内容

  • 没有找到相关文章

最新更新