首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在tasklet中退出Spring批处理作业

在tasklet中退出Spring批处理作业
EN

Stack Overflow用户
提问于 2018-09-24 17:56:35
回答 2查看 3.3K关注 0票数 2

我有一个Spring批处理任务,我不知道如何从它中失败。我想检查某些参数,如果它们不在那里,就在这一步上失败。

代码语言:javascript
复制
@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;
    }

}

注释行是我试图让工作退出的原因。有人有这方面的经验吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-24 18:06:42

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

票数 6
EN

Stack Overflow用户

发布于 2018-09-25 08:21:59

您可以使用implements接口StepExecutionListener,在

代码语言:javascript
复制
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    // check failed condition
    return ExitStatus.FAILED;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52484874

复制
相关文章

相似问题

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