Ejb 从最后一个结束日期开始按时间间隔安排java批处理作业

Ejb 从最后一个结束日期开始按时间间隔安排java批处理作业,ejb,jsr352,java-batch,jberet,ejbscheduler,Ejb,Jsr352,Java Batch,Jberet,Ejbscheduler,我使用jsr-352编写了我的工作,并在wildfly上部署了它。我如何在最后一个结束时间之后安排一个有一定延迟的作业,如下面的时间线,其中=是执行时间,-是延迟时间: ===============--=====--========-- 注意:作业执行的最大数量为一个JBeret ejb调度程序支持重复间隔作业执行,在作业执行开始后具有固定的间隔时间或特定的延迟时间。当前不支持作业执行结束后的延迟。如果作业执行持续时间相对可预测,则可以在作业执行开始后使用间隔或延迟来近似计算 要通过更精细的

我使用jsr-352编写了我的工作,并在wildfly上部署了它。我如何在最后一个结束时间之后安排一个有一定延迟的作业,如下面的时间线,其中
=
是执行时间,
-
是延迟时间:

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

注意:作业执行的最大数量为一个

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

要通过更精细的控制实现此类作业调度,您可以尝试以下操作:

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

是否有任何侦听器示例?你能介绍一些链接吗?是jberetejb调度程序的测试应用程序。我将探讨是否可以向它添加类似的用例。我已经将这样的作业侦听器(SchedulingJobListener)添加到jberet schedule executor模块中,应该在下一版本中正式提供。如果您想现在就尝试,您可以将这个类复制到您的应用程序中,并且应该也能正常工作。