【问题标题】:How to stop and resume a spring batch job如何停止和恢复春季批处理作业
【发布时间】:2016-02-24 12:28:26
【问题描述】:

目标:我正在使用 Spring Batch 进行数据处理,并且我希望可以选择停止/恢复(停止的地方)。

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

我的问题是我们如何在春季批处理中为停止的工作实现恢复功能。

【问题讨论】:

    标签: spring-batch spring-batch-admin


    【解决方案1】:

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

    例如,请参阅this example。第一次运行后,我们有:

    信息:作业:[SimpleJob:[name=myJob]] 使用以下参数完成:[{}] 和以下状态:[STOPPED] 状态为:已停止,作业执行 id 0 #1 步骤 1 完成 #2 步骤 2 已停止

    第二个之后:

    信息:作业:[SimpleJob:[name=myJob]] 使用以下参数完成:[{}] 和以下状态:[COMPLETED] 状态为:COMPLETED,作业执行 id 1 #3 步骤 2 完成 #4 步骤 3 完成

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

    标有allowRestartWithComplete 的步骤将始终重新运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多