Доступно ли удаленное разбиение с помощью JSR-352 в Spring Batch?

Я хотел бы настроить пакетное задание JSR-352 для удаленного разбиения на разделы, за кулисами через конфигурацию, без необходимости явно определять контроллер / рабочий в определении задания (что в любом случае не поддерживается спецификацией JSR-352). IBM WebSphere Liberty предоставляет эту возможность с помощью функции нескольких JVM, в которой вы определяете удаленное разбиение на разделы в файле конфигурации (server.xml).

Я видел, что унаследованная Spring Batch может поддерживать удаленное разбиение на разделы, но только через явное определение задания. Я не хочу использовать устаревшую Spring Batch. Вместо этого я хочу создать решение, переносимое на Java EE, включая IBM Liberty.


person Marcus    schedule 01.03.2021    source источник


Ответы (1)


Я не хочу использовать устаревшую Spring Batch. Вместо этого я хочу создать решение, переносимое на Java EE, включая IBM Liberty.

Если вам действительно нужно портативное решение, вам нужно определить свое задание на языке спецификации заданий JSR-352 и запустить его с помощью:

javax.batch.runtime.BatchRuntime.getJobOperator().start(jobName, properties)

Теперь, если в JSR-352 не указано, как определить настройку удаленного разбиения на разделы, вы не сможете получить портативное решение для этого.

Обратите внимание, что есть некоторые различия между Spring Batch и JSR-352, которые подробно описаны в Раздел поддержки JSR-352. Различия в разделении задокументированы здесь.

person Mahmoud Ben Hassine    schedule 02.03.2021
comment
В документации по секционированию, на которую вы ссылались, говорится, что в Spring Batch секционированные шаги выполняются как менеджер / работник. В JSR-352 происходит такая же конфигурация. Однако рабочие шаги не получают официальных StepExecutions. Из-за этого вызовы JsrJobOperator # getStepExecutions (long jobExecutionId) вернут только StepExecution для менеджера. С помощью IBM Liberty вы можете настроить среду так, чтобы разделы были удаленными. У меня вопрос: если я использую переносимый синтаксис JSL в JSR-352, могу ли я настроить реализацию для удаленного разбиения вне задания defn? - person Marcus; 02.03.2021