当前位置: 首页 > 知识库问答 >
问题:

在JobRegistry中找不到作业

冯旭
2023-03-14

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

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

对工作没有影响。

当我试着

jobOperator.stop(JOB_EXECUTION_ID);

我没有得到任何这样的例外。我是Spring批次的新手。有人能解释为什么我没有得到这样的工作例外吗?

经过一些调试,我发现在Job注册表中找不到作业。JobExplorer和JobRepository能够找到作业。Job注册表是否需要任何特定配置。

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个答案

慕阳文
2023-03-14

这段代码帮助了我

@Bean
public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() {
    JobRegistryBeanPostProcessor postProcessor = new JobRegistryBeanPostProcessor();
    postProcessor.setJobRegistry(jobRegistry);
    return postProcessor;
}

阅读有关Job注册表的文档

谢财
2023-03-14

不要使用< code>JobExecution.stop,它将在未来版本中被删除(参见BATCH-1987)。

JobOperator#stop(jobExecutionId)是要走的路。错误NoSuchJobFoundException不是Spring Batch的例外,所以我不知道是什么意思。我能想到的最接近的例外是org.springframework.batch.core.launch.NoSuchJobExecutionException,如果它找不到具有给定id的执行,则由作业运算符抛出。确保将有效的作业执行 ID 传递给 stop 方法

 类似资料:
  • 我写了一个非常简单的代码(Hello World!)通过记事本,它编译得很好,但是当我累了运行它时,我收到一条消息说错误: 在类Test4中找不到Main方法,请将Main方法定义为:publicstaticvoidmain(String[]args)或JavaFX应用程序类必须扩展JavaFX.application.application。 当我使用NeatBeans时,可以,但是当使用CM提

  • 问题内容: 我有一个问题:nodemon不能运行npm脚本(例如), 但是如果在npm脚本之外的命令行上调用nodemon ,则nodemon会正常运行。 在npm脚本中如何调用它: 运行npm start脚本时: 我一直在寻找解决方案,但没有找到解决方案。 问题答案: 您可以通过添加以下内容来解决此问题: 在中不存在时会发生问题。 已添加,因为仅在开发期间才需要。

  • 我写了phpUnit测试。我使用以下命令运行它:

  • 问题内容: 我想使用 注释消除。我在网上找到了一些教程,我注意到这个注释来自软件包;但是当我导入它时,会生成一个编译错误:找不到符号 问题答案: 您需要包括一个存在该类的罐子。您可以在这里找到它 如果使用Maven,则可以添加以下依赖项声明: 对于Gradle:

  • System:OS:Linux 5.3 Ubuntu 18.04.4 LTS(仿生海狸)CPU:(4)x64 Intel(R)Core(TM)i5-4300U CPU@1.90GHz内存:378.16MB/7.66GB shell:4.4.20-/bin/bash二进制文件:node:12.16.1-/usr/bin/node yarn:1.21.1-/usr/bin/yarn npm:6.13.

  • Netbeans是使用ubuntu软件管理器安装的。 netbeans网站上关于在netbeans中设置maven项目的说明如下: 选择文件 但是maven类别不在我的安装中。 也在网站上: 在选项窗口中选择杂项类别,然后单击Maven选项卡 但根本没有maven标签。maven不在那里的原因是什么?我怎样才能让它工作? 谢谢