Я использую Spring Batch Admin для запуска пакетных заданий для нашей системы. Нам приходится запускать эти задания много раз. Я использую остальной интерфейс администратора весенней партии. Я начинаю новую работу, используя Spring RestTemplate.
RestTemplate tpl = new RestTemplate();
tpl.postForLocation(Constants.SPRING_BATCH_ADMIN_URL + "/jobs/myBatchJob;
Это работает для запуска первого задания, но для последующих заданий запрос не запускает новый экземпляр задания. В файле конфигурации задания у меня есть заданный jobParmattersIncrementer
<job id="myBatchJob" xmlns="http://www.springframework.org/schema/batch"
restartable="true" incrementer="jobParametersIncrementer">
<bean id="jobParametersIncrementer"
class="org.springframework.batch.core.launch.support.RunIdIncrementer" />
Я попытался изменить свой postForLocation на
List<JobInstance> jobInstances = jobExplorer.getJobInstances("myBatchJob", 0, 30);
JobParameters jobParameters = jobInstances.get(0).getJobParameters();
RunIdIncrementer runIdIncrementer = new RunIdIncrementer();
JobParameters jobParameters = runIdIncrementer.getNext(jobParameters);
RestTemplate tpl = new RestTemplate();
tpl.postForLocation(Constants.SPRING_BATCH_ADMIN_URL +
"/jobs/myBatchJob?launch=Launch&{parameters}",
"runid",
jobParameters.toString());
Он работает со страницы администрирования весенней партии, нажав кнопку запуска. Это в поле редактирования параметра
run.id(long)=1
Как вы запускаете задание в Spring Batch Admin из другого веб-приложения более одного раза?