Распределенные задания Spring Batch загружаются в отдельные дочерние контексты приложения с помощью AutomaticJobRegistrar, чтобы минимизировать конфликты имен между заданиями. Поскольку у нас более 50 разделенных заданий, мы хотим использовать один JmsInboundGateway, который загружается в родительском контексте. Когда мы запускаем секционированное задание с помощью этого подхода, JmsInboundGateway получает сообщения и не может создать секционированный шаг, поскольку он определен в контексте дочернего приложения.
- Учитывая, что мы не хотим генерировать JmsInboundGateway в каждом из заданий (занимает много потоков, слушающих очередь), каков рекомендуемый подход к решению этой проблемы?
- Должны ли мы импортировать задания в родительский контекст и обрабатывать конфликты имен?
UPDATE:
Запись здесь 1 означает, что AJobRegistryBeanPostProcessor может использоваться для замены AutomaticJobRegistrar. Я попытался соответствующим образом изменить мою конфигурацию и получить ошибку BatchConfigurer.