【问题标题】:How to set ExitStatus of aborted job to "reason for abort" message?如何将中止作业的 ExitStatus 设置为“中止原因”消息?
【发布时间】:2023-02-07 04:42:50
【问题描述】:

我需要中止正在运行的作业并将其 ExitStatus 设置为“中止原因”。

中止正在运行的作业非常容易:

try {
    if (jobOperator.stop(jobExecutionId)) {
        jobOperator.abandon(jobExecutionId);
        log.info("The job with JobId :" + jobExecutionId + " was canceled.");
    }
}

是的,我知道,设置 ExitStatus 的唯一方法是在 JobExecutionListener (Setting EXIT_MESSAGE in batch_job_execution) 中使用 AfterJob

但是我如何将“中止原因”消息从中止作业的代码传输到JobExecutionListenerAfterJob

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    如何将“中止原因”消息从中止作业的代码传输到作业后的 JobExecutionListener?

    没有办法做到这一点。您可以从“外部”(通过作业操作员)传递到“内部”(作业执行及其侦听器)的唯一信息是停止信号。

    在停止或中止作业执行后,其他所有事情都可以在作业执行本身上完成,例如:

    try {
        if (jobOperator.stop(jobExecutionId)) {
            jobOperator.abandon(jobExecutionId);
            JobExecution jobExecution = jobExplorer.getJobExecution(jobExecutionId);
            jobExecution.setExitStatus(new ExitStatus("ABORTED", "reason for abort"));
            jobRepository.update(jobExecution);
            log.info("The job with JobId :" + jobExecutionId + " was canceled.");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2020-05-09
      • 2022-11-02
      • 1970-01-01
      • 2014-09-10
      • 2016-12-25
      相关资源
      最近更新 更多