在JobRegistry中找不到工作

时间:2019-03-13 10:40:43

标签: spring spring-batch

我正在尝试停止Spring批处理执行。我尝试过

jobExecution.stop();
jobRepository.update(jobExecution);

对工作没有影响。

当我尝试

jobOperator.stop(JOB_EXECUTION_ID);

我正在获取NoSuchJobException。我是Spring Batch的新手。谁能解释我为什么会收到NoSuchJobException?

经过一些调试后,我发现JobRegistry中找不到Job。 JobExplorer和JobRepository能够找到工作。 JobRegistry是否需要任何特定的配置。

07:22:27.625  WARN o.s.b.c.l.s.SimpleJobOperator            : Cannot find Job object in the job registry. StoppableTasklet#stop() will not be called org.springframework.batch.core.launch.NoSuchJobException: No job configuration with the name [wf-demo-1552486941361] was registered
    at org.springframework.batch.core.configuration.support.MapJobRegistry.getJob(MapJobRegistry.java:66) ~[spring-batch-core-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at org.springframework.batch.core.launch.support.SimpleJobOperator.stop(SimpleJobOperator.java:403) ~[spring-batch-core-4.0.1.RELEASE.jar:4.0.1.RELEASE]

是错误堆栈

2 个答案:

答案 0 :(得分:0)

请勿使用JobExecution.stop,它将在以后的版本中删除(请参见BATCH-1987)。

JobOperator#stop(jobExecutionId)是必经之路。错误NoSuchJobFoundException不是Spring Batch异常,所以我不知道这是什么意思。我能想到的最接近的异常是org.springframework.batch.core.launch.NoSuchJobExecutionException,如果作业操作员找不到具有给定id的执行,则抛出该异常。确保您将有效的作业执行ID传递给stop方法。

答案 1 :(得分:0)

此代码对我有帮助

chcon -R -t httpd_sys_rw_content_t your_file_directory

阅读有关JobRegistry的文档