Spring Batch Remote Partitioning - PullRequest
       16

Spring Batch Remote Partitioning

0 голосов
/ 13 ноября 2018

Я хотел бы понять интеграцию между DeployerPartitionHandler и DeployerStepExecutionHandler во время удаленного разбиения.

Как время начала, время окончания, состояние выполнения родительской задачи обновляется при наличии нескольких рабочих?

Что произойдет, если один из рабочих процессов перестанет отвечать на запросы по каким-либо внешним причинам? Есть ли способ справиться с этой ситуацией программно? то есть, чтобы убить не отвечающий процесс и провалить шаг.

Заранее спасибо за вклады !!

1 Ответ

0 голосов
/ 13 ноября 2018

У вас есть несколько вопросов, поэтому позвольте мне ответить на них по одному.

Как время начала, время окончания, статус выполнения родительской задачи обновляется при наличии нескольких рабочих?

Все компоненты в этой архитектуре являются задачами. Родитель - это задача, рабочие - это все задачи, поэтому все они обновляют хранилище задач независимо друг от друга. Родительское приложение отметит время запуска в начале задачи (до вызова любых реализаций CommandLineRunner или ApplicationRunner). Он обновит время окончания и результаты, как только все рабочие будут выполнены (поскольку удаленный разделенный шаг не будет завершен, пока все рабочие не будут завершены или истекло время ожидания).

Что произойдет, если один из рабочих процессов перестанет отвечать на запросы по каким-либо внешним причинам?

Средства развертывания, используемые DeployerPartitionHandler, зависят от платформы (CloudFoundry, Kubernetes и т. Д.) Для производственного использования. Каждая из этих платформ обрабатывает зависшие процессы по-своему, поэтому ответ на этот вопрос действительно зависит от платформы. В большинстве случаев, если процесс определен как неработоспособный (по определению платформы), он будет остановлен.

Есть ли способ обработать эту ситуацию программно? то есть, чтобы убить не отвечающий процесс и пропустить шаг.

Если во время выполнения произойдет сбой раздела, родительский элемент также будет помечен как сбойный и может быть перезапущен. При перезапуске (по умолчанию) будут перезапущены только неисправные разделы. Любые разделы, которые уже завершены, не будут выполняться повторно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...