Ejb 从最后一个结束日期开始按时间间隔安排java批处理作业
我使用jsr-352编写了我的工作,并在wildfly上部署了它。我如何在最后一个结束时间之后安排一个有一定延迟的作业,如下面的时间线,其中Ejb 从最后一个结束日期开始按时间间隔安排java批处理作业,ejb,jsr352,java-batch,jberet,ejbscheduler,Ejb,Jsr352,Java Batch,Jberet,Ejbscheduler,我使用jsr-352编写了我的工作,并在wildfly上部署了它。我如何在最后一个结束时间之后安排一个有一定延迟的作业,如下面的时间线,其中=是执行时间,-是延迟时间: ===============--=====--========-- 注意:作业执行的最大数量为一个JBeret ejb调度程序支持重复间隔作业执行,在作业执行开始后具有固定的间隔时间或特定的延迟时间。当前不支持作业执行结束后的延迟。如果作业执行持续时间相对可预测,则可以在作业执行开始后使用间隔或延迟来近似计算 要通过更精细的
=
是执行时间,-
是延迟时间:
===============--=====--========--
注意:作业执行的最大数量为一个JBeret ejb调度程序支持重复间隔作业执行,在作业执行开始后具有固定的间隔时间或特定的延迟时间。当前不支持作业执行结束后的延迟。如果作业执行持续时间相对可预测,则可以在作业执行开始后使用间隔或延迟来近似计算 要通过更精细的控制实现此类作业调度,您可以尝试以下操作:
- 计划单个操作作业计划
- 在job.xml中配置一个作业侦听器,以监视上述作业执行的结束,并以较短的初始延迟安排下一个单操作作业执行
- 具体来说,作业侦听器的
方法应该能够查找或注入afterJob()
,这是一个本地单例EJB,并调用其TimerSchedulerBean
方法。作业侦听器负责创建org.jberet.schedule.TimerSchedulerBean 35; schedule
的实例,并在调用ejb业务方法时传递该实例。作业侦听器应该已经拥有创建org.jberet.schedule.JobScheduleConfig
的所有信息JobScheduleConfig