繁体   English   中英

Spring 批处理作业如何回滚整个作业中的所有步骤?

[英]Spring Batch Job how to rollback all steps in whole job?

我需要实施一个包含 3 个步骤的作业。 第一步从 web 服务获取数据。 第二步调用另一个 web 服务来获取额外的数据。 第三步根据我们从第一步获得的数据下载图像。

现在,内部发生的事情并不那么重要。 但其中一项要求是,如果其中一个步骤失败,那么之前的所有工作也必须清理干净。 例如,如果第二步失败,那么从第一步获得的所有数据也必须被清除。 因为不能有不一致的数据。

现在我知道它不是在 Spring Batch Job 自然中做到这一点,但还有办法做到这一点吗? 也许使用一些 JobExecutionListener 之类的?

还是我必须将所有这些步骤合二为一?

你在正确的轨道上。 在 Spring Batch 中,事务性处于块级别,因此如果您需要根据您的逻辑进行一些回滚,您可以根据需要在 JobExecutionListener 或 StepExecutionListener 级别编写一些清理策略来实现。

你的问题对我来说不够清楚。 据我了解,您可以使用@Transactional进行回滚。 如果您正在调用不同的方法,请为每个服务创建一个事务方法并调用 spring 作业中的所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM