#spring-batch #spring-cloud-dataflow #spring-cloud-dataflow-ui
#spring-batch #spring-cloud-поток данных #spring-cloud-dataflow-ui
Вопрос:
В Docker развернут поток данных, и пакетное приложение Spring развертывается как «Задача» и превращается в задачу.
Я пытаюсь предоставить параметр задания на год для своей задачи. Я попытался использовать класс свойств с @ConfigurationProperties
аннотацией, как в примере с отметкой времени. Затем я превращаю это в параметр задания через JobParametersIncrementer
.
@Bean
public Job job() {
return this.jobBuilderFactory
.get("job")
.incrementer(new SampleIncrementer(year))
.start(step())
.build();
}
class SampleIncrementer implements JobParametersIncrementer {
private final Long year;
public SampleIncrementer(final Long year) {
this.year = year;
}
public JobParameters getNext(final JobParameters parameters) {
if (isNull(parameters)) {
return new JobParametersBuilder().addLong("year", year).toJobParameters();
}
if (isNull(parameters.getLong("year"))) {
return new JobParametersBuilder(parameters).addLong("year", year).toJobParameters();
}
return parameters;
}
}
Но параметр задания не найден позже на этом шаге.
Есть ли способ передать параметры задания из пользовательского интерфейса Spring Cloud Data Flow в исполнение?
Комментарии:
1. Просто чтобы уточнить, я хочу иметь возможность повторно запустить задание с другим годом. Итак, если я уже запустил 2010, я мог бы начать с другого набора параметров задания, где year = 2011.
Ответ №1:
Параметры задания передаются как, Arguments
где вам не нужно указывать --
префикс. Например, в этом случае вам нужно указать year=2011
в качестве аргумента в Arguments
разделе.