代码之家  ›  专栏  ›  技术社区  ›  Josh

退出tasklet中的Spring批处理作业

  •  0
  • Josh  · 技术社区  · 7 年前

    @Component
    public class Tfp211SetupTasklet extends AbstractSetupTasklet {
    
        final static Logger LOGGER = LoggerFactory.getLogger(Tfp211SetupTasklet.class);
    
        @Override
        protected RepeatStatus performTask(ExecutionContext ec, ChunkContext chunkContext) {
            //TODO
            //add error checking. If the parameter is not there, fail out or throw an error message.
            Map<String, String> params = new HashMap<>();
            List<String> requiredParams = new ArrayList<>();
            requiredParams.add("name");
            requiredParams.add("id");
            requiredParams.add("test");
            JobParameters jobParameters = chunkContext.getStepContext().getStepExecution().getJobParameters();
            params.put("name", jobParameters.getString("name"));
            params.put("id", jobParameters.getString("id"));
            params.put("test", jobParameters.getString("test"));
    //        if (!params.values().containsAll(requiredParams)) {
    //            LOGGER.info("not all required parameters exist for the job execution to succeed.");
    //            return RepeatStatus.FINISHED;
    //        }
            ec.put(AbstractSetupTasklet.BATCH_PROGRAM_PARAMS, params);
            ec.put(AbstractSetupTasklet.BATCH_PROGRAM_NAME, NTfp211.class.getSimpleName());
            return RepeatStatus.FINISHED;
        }
    
    }
    

    2 回复  |  直到 7 年前
        1
  •  6
  •   Mahmoud Ben Hassine    7 年前

    要使tasklet失败,只需从中抛出一个异常。

        2
  •  2
  •   Quang VÄ©nh Hà    7 年前

    implements 接口 StepExecutionListener ,和

    @Override
    public ExitStatus afterStep(StepExecution stepExecution) {
        // check failed condition
        return ExitStatus.FAILED;
    }