Spring-Batch:如何保证一个Job在运行时,不允许同时再次运行

tec*_*uva 5 spring-batch spring-batch-admin

如何保证一个Job在运行时,同时不允许再次运行?

我们有 BJ 需要 1 小时来处理提要和填充临时表。此 BJ 的第一步是清除临时表并开始填充主店面表中的数据。

考虑一个场景,当 BJ 启动时(第一次运行),如果我们再次启动 BJ,它将作为第一步的一部分从临时表中删除内容。

所以请建议我如何保持第二次执行直到第一次执行未完成?

Mic*_*aev 4

您可以创建自定义Tasklet作为第一步,并在其中使用JobExecutionDao来查找所有JobExecutions。如果有多个正在运行- 抛出异常。