本文介紹了退出Tasklet內(nèi)的Spring批處理作業(yè)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有一個Spring Batch微線程,但我不知道如何從它失敗。我想檢查某些參數(shù),如果它們不在那里,則在該步驟中使作業(yè)失敗。
@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;
}
}
注釋掉的行是我試圖讓作業(yè)退出的內(nèi)容。有人用過這個嗎?
推薦答案
若要使微線程失敗,只需從它引發(fā)異常即可。
這篇關(guān)于退出Tasklet內(nèi)的Spring批處理作業(yè)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,