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

返回到Spring Batch中的前一步

燕嘉熙
2023-03-14

我想使用Spring Batch实现一个类似于下面的作业:

Step1 -----> Step2 --> End
  ^            |
  |            |
   ------------

在步骤2中的某些情况下,由步骤2的自定义退出代码确定,要么再次启动步骤1,然后再次启动步骤2,要么处理将结束。

return jobBuilderFactory.get("jobName").incrementer(new RunIdIncrementer())
                .start(step1()).next(step2())
                    .on("condition1").end()
                .from(step1())
                    .on("condition2").to(step1()).end().build();
jobBuilderFactory.get("jobName")
            .flow(step1())
            .next(step2())
                .on("launchStep1Again")
                    .to(step1())
            .from(step2())
                .on("endJobExecution")
                    .end().build().build();

共有1个答案

喻珂
2023-03-14

SpringBatch不是用来处理递归循环的。虽然您可能能够破解它,但当涉及到失败和重新启动时,您将遇到问题。

SpringBatch在其执行上下文中存储一个步骤的it阅读器和编写器的当前“位置”;以便能够在上次崩溃的位置重新启动作业。

因此,在作业重新启动的情况下,SpringBatch将假定这是作业的第一次执行。

在每个Spring Schedured(@Schedured)运行前重置状态

 类似资料:
  • 用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并

  • 可能重复如何关闭活动并返回到android中的上一个活动 问题是,我在当前使用的方法末尾添加finish(),整个应用程序就会关闭。 我希望通过按下手机上的后退按钮(我不想在应用程序中添加后退按钮)将其返回到上一个屏幕 我想从secondScreen()返回main

  • 假设我有一个以编程方式添加片段的活动: 回到之前可见的片段的最佳方式是什么? 我在Android的button click上发现了触发后退按钮功能,但我认为模拟后退键事件不是正确的方法(我也无法让它工作): 调用只会关闭我不感兴趣的活动。 还有更好的方法吗?

  • 我研究一个简单的问题已经有相当长的时间了。在包括这个网站在内的许多论坛上搜索了很多,但仍然无法解决这个问题。因此请求您的帮助。 我有一个带有文本区域和提交按钮的JSP页面。 在Servlet类中,我执行以下操作- 因此,在我点击提交按钮后,我的请求将转到servlet,并从servlet返回到原始的jsp,但我无法用servlet输出填充文本区域。我已经尝试了很多方法,就像我在互联网上发现的那样,

  • 我想回到上一页。 上一页:作业。html当前页面:jobDetail。html 按照说明,我从“@角度/公共”添加了<代码>导入{Location} 至作业详细信息。组成部分ts文件位于顶部,后跟 我在jobDetail中有一个html代码。html,但不知道如何继续。如何正确添加上一个按钮。像我这样的新手没有简单的教程。

  • 问题内容: 我将用户带到单击按钮的页面上。此页面是 UITableViewController 。 现在,如果用户点击一个单元格,我想将他推回到上一页。 我想到了类似的东西,但这似乎是个坏主意。 正确的方法是什么? 问题答案: 斯威夫特3: 如果您想回到上一个视图控制器 如果要返回到根视图控制器