Я использую макет с использованием версии Spring Batch 3.0.
Создайте задание и выполните размещение, выполнив метод запуска JobLauncher из TASKLET.
Я хочу узнать более точно, Задание выполняется или не выполняется через логы вставки c в запросе в TASKLET с соответствующим JobId и другими таблицами, отличными от метатаблиц.
public class SampleScheduler {
protected final Logger log = LoggerFactory.getLogger(this.getClass());
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job sampleJob;
public void run() {
try {
String dateParam = new Date().toString();
JobParameters param = new JobParametersBuilder().addString("date",dateParam).toJobParameters();
JobExecution execution = jobLauncher.run(sampleJob, param);
log.debug("###################################################################");
log.debug("Exit Status : " + execution.getStatus());
log.debug("###################################################################");
} catch (Exception e) {
// e.printStackTrace();
log.error(e.toString());
}
}
}
Код для вызова тасклета -
public class SampleTasklet implements Tasklet{
@Autowired
private SampleService sampleService;
@Override
public RepeatStatus execute(StepContribution contribution,
ChunkContext chunkContext) throws Exception {
sampleService.query();
return RepeatStatus.FINISHED;
}
}
Это мой код тасклета.
StepContext stepContext = chunkContext.getStepContext();
StepExecution stepExecution = stepContext.getStepExecution();
JobExecution jobExecution = stepExecution.getJobExecution();
long jobInstanceId = jobExecution.getJobId();
Правильно ли попробовать это в приведенном выше коде ЗАДАЧИ?