首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于EXITSTATUS的默认Spring Job BatchStatus值

基于EXITSTATUS的默认Spring Job BatchStatus值
EN

Stack Overflow用户
提问于 2016-09-12 17:50:45
回答 1查看 346关注 0票数 0

我正在寻找默认值Spring Batch Framework根据"EXITSTATUS“添加作业的"BatchStatus”值(寻找default值框架添加)。我试着看了一些spring批处理框架类文件的源代码,我没有find.Can,有人请贴上类名称,在那里我可以找到框架源代码中的默认逻辑。

例如When (模拟代码)

代码语言:javascript
复制
              if(EXITSTATUS is FAILED)
              {
                jobs.setBatchStatus(FAILED)
              }
EN

回答 1

Stack Overflow用户

发布于 2016-09-12 20:25:33

代码语言:javascript
复制
1. Default Exit Status is UNKNOWN and Default Status is STARTING

    (org.springframework.batch.core.JobExecution)
    private volatile BatchStatus status = BatchStatus.STARTING;
    private volatile ExitStatus exitStatus = ExitStatus.UNKNOWN;

2. First time run is STARTED as

    org.springframework.batch.core.job.AbstractJob

    if (execution.getStatus() != BatchStatus.STOPPING) {
                    execution.setStartTime(new Date());
                    updateStatus(execution, BatchStatus.STARTED);

3. If your job is based on SimpleJob so
Job Status is updated based on Step Execution's Status (Note: they will apply upgrade status ) and
Job Exit Status is updated base on Step Execution's Exit Status

    org.springframework.batch.core.job.SimpleJob

        if (stepExecution != null) {
                    logger.debug("Upgrading JobExecution status: " + stepExecution);
                    execution.upgradeStatus(stepExecution.getStatus());
                    execution.setExitStatus(stepExecution.getExitStatus());
                }

4. If your job is based on FlowJob, Status and ExitStatus is updated based on the method

org.springframework.batch.core.job.flow.JobFlowExecutor

    public void updateJobExecutionStatus(FlowExecutionStatus status) {
            execution.setStatus(findBatchStatus(status));
            exitStatus = exitStatus.and(new ExitStatus(status.getName()));
            execution.setExitStatus(exitStatus);
        }

We are seeing Status and Exit Status are updating separately and no logic Spring set Status based on Exit Status. They are based on StepExecutionStatus or FlowExecutionStatus.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39447633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档