目前我正在使用spring Batch处理一个任务。
有一个工作包含三个步骤:步骤1,步骤2,步骤3。
但是第二次,我们希望工作跳过步骤2,也就是说:步骤1,步骤3。
有没有人有一个解决方案,在重启作业时跳过特定的步骤?
可以使用JobRepository
接口查询步骤(有JobRepository.getStepExecutionCount()
方法);使用JobExecutionDecider
,您可以根据JobRepository.getStepExecutionCount()
结果转到步骤2或步骤3
用例:步骤1:ItemReader:从数据库中读取1000个ItemProcessor块中的数据:处理这些数据。ItemWriter:将数据写入地图,以便下一步使用 步骤2:ItemReader:读取地图ItemProcessor:处理地图数据并获取新对象。ItemWriter:将新的进程对象持久化到数据库中。 现在我希望Map在整个作业中保持不变,目前我已经为Map创建了一个不同的POJO类,并
我正在尝试对作业使用Spring批处理。我有两个作业tempJob和tempJob2在两个单独的配置中。当尝试使用命令行参数(-dspring.batch.job.names=tempJob)运行tempJob时,SpringBatch尝试运行tempJob两次,我得到以下错误 2018-06-15 11:36:37.956信息14436---[main]O.S.B.C.L.Support.Sim
我已经阅读了spring批处理文档几次,并搜索了一种基于作业参数跳过作业步骤的方法。 我希望能够跳过步骤4,如果希望通过指定在工作Paramaters。 我能找到的唯一相关的问题是如何根据应用程序参数--spring boot java config选择运行哪个spring批处理作业 这似乎表明应该创建两个不同的作业上下文,并在批处理步骤定义之外做出决定。 但是,必须创建4个单独的上下文文件,以便
我有一个Kafka集群正在运行,当重新启动应用程序(消费者)时,它会跳过一些在应用程序关闭时推送到主题的消息。 当应用程序启动时,我可以看到它读取带有偏移量的消息,然后将偏移量推送到。然后当应用程序关闭时,带有偏移量的消息被推送到主题。重启应用程序后,它读取并将其偏移量设置为,因此跳过。 这是我的配置:
我试图从步骤(实现接口Tasklet的类的execute方法)内部启动作业。 显然我收到了例外 Java语言lang.IllegalStateException:在JobRepository中检测到现有事务 如何使Spring批处理步骤不是事务性的? 有人能解决我从一步内启动工作的主要需求吗? 提前感谢您的帮助!
启动一个新的作业实例,不从最后一个块继续作业,而是从最后一个步骤继续作业。我需要从最后写的那块开始继续工作。 我的阅读器是一个自定义的RestReader,它首先计算要处理的项的总数,然后从API读取这个精确的数字。我正在使用@stepscope注释,因为我需要自定义阅读器中的自定义变量 使用@stepscope时Spring批处理重新启动功能不工作。 是否可以从上一个块开始继续工作,还是问题出在