我有几个使用 SAP Java Scheduler 在 SAP Java 系统上运行的批处理作业。不幸的是,我没有遇到任何说明如何防止定期作业并发执行的文档。我所看到的只是“作业的新实例将在下一个间隔执行”。这破坏了我的 fi-fo 处理逻辑,所以我需要找到一种方法来防止它。如果调度程序 API 有一种检查相同作业执行的方法,这将得到解决,但还没有看到示例。
作为一种通用的架构方法,执行此操作的其他方法似乎是使用 DB 表(用于标记当前执行的指标表)或 JNDI 参数,该参数将在作业开始时首先检查。我也可以“尝试”使用静态整数,但这会使我在集群实例上失败。该系统符合 J2EE5 并支持 EJB 3.0,因此“单一 EJB”也不可用。我可以为 bean 设置最大池大小并可能达到类似的结果。
我想听听您对如何使用不同的架构来实现这一目标的意见。
亲切的问候,
S. Gökhan Topçu