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

如何停止和恢复一个Spring批量作业

皮景龙
2023-03-14

目标:我正在使用spring batch进行数据处理,我希望有一个停止/恢复(在它停止的地方)的选项。

问题:我能够向正在运行的作业发送停止信号,并且它成功地被停止。但是当我试图发送启动信号到同一作业时,它创建了一个新的作业实例,并作为一个新的作业开始。

我的问题是如何在spring Batch中为停止的工作实现简历功能。

共有1个答案

能文华
2023-03-14

您只需用相同的参数运行它。只需确保没有将作业标记为未重新启动,并且没有使用RunidIncrementer或类似的方法自动生成唯一的作业参数。

例如,请参见此示例。在第一次运行之后,我们有:

INFO: Job: [SimpleJob: [name=myJob]] completed with the following parameters: [{}] and the following status: [STOPPED]
Status is: STOPPED, job execution id 0
  #1 step1 COMPLETED
  #2 step2 STOPPED

第二次之后:

INFO: Job: [SimpleJob: [name=myJob]] completed with the following parameters: [{}] and the following status: [COMPLETED]
Status is: COMPLETED, job execution id 1
  #3 step2 COMPLETED
  #4 step3 COMPLETED

注意,停止的步骤将被重新执行。如果使用面向块的步骤,请确保ItemReader至少实现ItemStream(并使用正确的语义)。

标记为AllowRestartWithComplete的步骤将始终重新运行。

 类似资料:
  • 安装Jenkins后,我很困惑如何停止/启动Jenkins。使用此脚本在我的终端上进行战争 java-JarJenkins。war-httpPort=8080 原因如果再次运行上述代码,可能是错误原因端口已在使用中。我可以卸载它,但如果我需要Jenkins,我必须卸载它,然后重新安装,这就像浪费时间一样。需要知道如何在不卸载已安装的jenkins的情况下停止/启动命令的人 谢谢

  • 问题是关于批处理作业的自动恢复策略。表示服务器由于未知原因关闭,当时有几个作业正在运行(状态为“开始”,结束时间为null)。当我们再次启动服务器时,我们如何恢复所有这些作业。 在我的情况下,我编写了自己的作业启动程序来接收请求并将它们保存到DB队列中。然后,我运行自己的作业调度程序轮询来自DB的请求并执行作业。为了将这些作业的状态从“已开始”更改为“已开始”,以便再次被我的计划程序接收,我的当前

  • 我怎样才能停止一个工作在Spring批次?我尝试使用下面的代码来使用这个方法: 我尝试也完成了,失败了,但这个方法不工作,作业继续执行。有解决办法吗?

  • 问题内容: 我在viewDidAppear中有一个图像,并用以下代码对其进行了动画处理: 我想在点击时暂停动画,如果再次点击它则继续播放动画。 问题答案: 暂停和恢复动画的2个功能,我从这里开始转换为Swift。 我有一个按钮可以暂停或恢复在中初始化的动画:

  • 问题内容: 这将每5秒钟发出一个滴答声。 要停止它,您可以使用 但是,所有调度程序都停止了,以后无法继续进行滴答。如何停止并“优雅地”继续发射? 问题答案: 这是一种可能的解决方案:

  • 我能够通过命令行使用成功地启动springboot-batch作业。