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