Глобальные свойства потока данных Spring Cloud для составленных задач

#spring #properties #spring-batch #spring-cloud-dataflow

Вопрос:

Я пытаюсь передать глобальные свойства в составленные задачи. Когда я указываю каждое задание, оно работает, но есть дублирование конфигурации. Я пробовал несколько подходов, но свойства заданы неправильно.

Мой проект (jar) содержит несколько пакетных заданий Spring. Какой из них выполняется, зависит от аргумента java. Задача CSDF выглядит следующим образом:

 download: my-task 'COMPLETED'->status_ok: my-task 'FAILED'->status_error: my-task
 

введите описание изображения здесь

Поскольку я использую базу данных для своего проекта, мне нужно указать источник данных для SCDF, а также для JPA. Следовательно, я переопределяю DefaultTaskConfigurer.
Конфигурация, которая работает, выглядит следующим образом:

 app.my-task.download.spring.batchdatasource.driver-class-name=org.mariadb.jdbc.Driver
app.my-task.download.spring.batchdatasource.password=rootpw
app.my-task.download.spring.batchdatasource.url=jdbc:mysql://mysql:3306/dataflow
app.my-task.download.spring.batchdatasource.username=root

app.my-task.download.spring.datasource.driver-class-name=org.postgresql.Driver
app.my-task.download.spring.datasource.password=pw
app.my-task.download.spring.datasource.url=jdbc:postgresql://postgres:5432/csv
app.my-task.download.spring.datasource.username=root
 
app.my-task.status_ok.spring.batchdatasource.driver-class-name=org.mariadb.jdbc.Driver
app.my-task.status_ok.spring.batchdatasource.password=rootpw
app.my-task.status_ok.spring.batchdatasource.url=jdbc:mysql://mysql:3306/dataflow
app.my-task.status_ok.spring.batchdatasource.username=root
 
app.my-task.status_ok.spring.datasource.driver-class-name=org.postgresql.Driver
app.my-task.status_ok.spring.datasource.password=pw
app.my-task.status_ok.spring.datasource.url=jdbc:postgresql://postgres:5432/csv
app.my-task.status_ok.spring.datasource.username=root
 
app.my-task.status_error.spring.batchdatasource.driver-class-name=org.mariadb.jdbc.Driver
app.my-task.status_error.spring.batchdatasource.password=rootpw
app.my-task.status_error.spring.batchdatasource.url=jdbc:mysql://mysql:3306/dataflow
app.my-task.status_error.spring.batchdatasource.username=root

app.my-task.status_error.spring.datasource.driver-class-name=org.postgresql.Driver
app.my-task.status_error.spring.datasource.password=pw
app.my-task.status_error.spring.datasource.url=jdbc:postgresql://postgres:5432/csv
app.my-task.status_error.spring.datasource.username=root
 

batchdatasource.* свойства предназначены для SCDF и источника данных.* предназначены для моего личного использования. Это работает как заклинание, оба источника данных инициализированы.

Кроме того, аргументы запуска выглядят следующим образом:

 app.download.0=--jobName=download
app.status_error.0=--status=Error
app.status_error.1=--jobName=status
app.status_ok.0=--status=Ok
app.status_ok.1=--jobName=status
 

But as you can see, there is a lot of duplicity. I tried to do it this way

 app.*.spring.batchdatasource.driver-class-name=org.mariadb.jdbc.Driver
app.*.spring.batchdatasource.password=rootpw
app.*.spring.batchdatasource.url=jdbc:mysql://mysql:3306/dataflow
app.*.spring.batchdatasource.username=root

app.*.spring.datasource.driver-class-name=org.postgresql.Driver
app.*.spring.datasource.password=pw
app.*.spring.datasource.url=jdbc:postgresql://postgres:5432/csv
app.*.spring.datasource.username=root
 

and this way

 app.my-task.*.spring.batchdatasource.driver-class-name=org.mariadb.jdbc.Driver
app.my-task.*.spring.batchdatasource.password=rootpw
app.my-task.*.spring.batchdatasource.url=jdbc:mysql://mysql:3306/dataflow
app.my-task.*.spring.batchdatasource.username=root

app.my-task.*.spring.datasource.driver-class-name=org.postgresql.Driver
app.my-task.*.spring.datasource.password=pw
app.my-task.*.spring.datasource.url=jdbc:postgresql://postgres:5432/csv
app.my-task.*.spring.datasource.username=root
 

but none of this works. What am I doing wrong ?

As you can see, properties were not set for this task execution.
enter image description here