我有一个Spring批处理任务,我不知道如何从它中失败。我想检查某些参数,如果它们不在那里,就在这一步上失败。
@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;
}
}注释行是我试图让工作退出的原因。有人有这方面的经验吗?
发布于 2018-09-24 18:06:42
要使tasklet失败,只需从其中抛出一个异常即可。
发布于 2018-09-25 08:21:59
您可以使用implements接口StepExecutionListener,在
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
// check failed condition
return ExitStatus.FAILED;
}https://stackoverflow.com/questions/52484874
复制相似问题