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

Spring批处理-用异步作业检索异常

段干宾白
2023-03-14

我正在用异步JobLauncher在Spring Batch中配置一个(长时间运行的)作业,我有两个RESTendpoint:

    null
   jobExecution.getAllFailureExceptions() --> empty list
   stepExecution.getFailureExceptions()  --> empty list

谢谢朱利奥

共有1个答案

东方飞捷
2023-03-14

失败异常是在作业执行完成之后(更准确地说,是在作业即将完成之前)添加的。因此在作业运行时它们不可用。这就是为什么当作业在后台异步运行时,如果调用/statusendpoint,则无法获取它们。

这同样适用于步骤失败异常,但这些异常应该在步骤完成后立即可用(当最终的后续步骤和周围的作业仍在运行时)。

 类似资料:
  • 我遵循了spring批处理文档,无法异步运行我的作业。 因此,我从一个web容器运行该作业,该作业将通过RESTendpoint触发。 我想让JobInstance ID在完成整个作业之前传递它作为响应。因此,他们可以稍后使用JobInstance ID检查作业的状态,而不是等待。但我没能让它工作。下面是我尝试过的示例代码。请让我知道我错过了什么或错了什么。 BatchConfig创建异步JobL

  • 我们的Spring批处理作业在处理输入文件时突然失败。当我试图重新运行批处理作业时,它会抛出以下消息。 02:27:09.088[main]调试O.S.B.C.R.dao.jdbcstepExecutionDAO-在更新StepExecution之前截断长消息,原始消息为:org.springframework.batch.core.jobExecutionException:无法从开始状态重新启

  • 我对Spring批处理跳过逻辑有一些问题。我已经配置了一个作业的步骤来跳过两个异常(SQLIntegrityConstraintViolation异常和乐观锁定失败异常): 但当作业运行时,由于我将其配置为跳过的异常,作业以未知状态完成: 我做错什么了吗?我希望这一步跳过负责抛出其中一个异常的项,并继续处理,以便以完成状态结束。

  • 我使用Spring Batch admin项目,在该项目中,我得到了一个异步处理特定文件夹中文件的作业。目前,我通过batch admin ui通过传递相关作业参数来运行它。 现在,我正试图通过使用文件入站通道适配器自动化此过程。我已经配置了服务激活器,它将在收到文件时调用批处理作业。我现在有一个新的要求,即在第一个文件上载作业完成后调用另一个批处理作业。为此,我创建了另一个服务激活器,它使用第一

  • 我正在尝试在Spring批处理中并行运行多个作业。在谷歌上搜索了很多之后,我遇到了JobStep。有没有人使用过JobStep可以解释如何使用它来并行运行作业,或者有没有其他方法可以并行运行2个独立的作业,即当我启动批处理时,2个作业应该开始并行运行。我的要求就像 当我的应用程序启动时,两个作业都应该开始运行。使用spring batch是否可以这样做 编辑:我甚至试过这种方法 我面临着例外。sp

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。