Spring batch Spring批处理一次只允许一个实例

Spring batch Spring批处理一次只允许一个实例,spring-batch,Spring Batch,我想允许一次只运行一个批处理运行。我试图通过使用以下代码(从作业侦听器)找到它: Set jobExecutions=jobExplorer.findRunningJobExecutions(jobExecution.getJobInstance().getJobName()); if(jobExecutions.size()>1) 系统出口(2); 当我从不同的终端运行两个批时,这个代码不起作用 另外,在开发环境中,我使用HSQL。您的jobExplorer是否从每个终端读取相同的数据库?您

我想允许一次只运行一个批处理运行。我试图通过使用以下代码(从作业侦听器)找到它:

Set jobExecutions=jobExplorer.findRunningJobExecutions(jobExecution.getJobInstance().getJobName());
if(jobExecutions.size()>1)
系统出口(2);
当我从不同的终端运行两个批时,这个代码不起作用


另外,在开发环境中,我使用HSQL。

您的jobExplorer是否从每个终端读取相同的数据库?您的jobRepository和jobExplorer是否指向相同的数据库?我看不出你的代码失败的任何其他原因。你想要实现的是,你需要一个DB,并确保每个人都指向同一个DB。问题是,我使用HSQL,每次从终端启动应用程序时,它都会在RAM中创建一个新的DB。当我将其更改为mySQL DB时,问题已修复。
Set<JobExecution> jobExecutions = jobExplorer.findRunningJobExecutions(jobExecution.getJobInstance().getJobName());

if (jobExecutions.size() > 1)
  System.exit(2);