Предоставление параметра задания через пользовательский интерфейс Spring Cloud Data Flow

#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 разделе.