Разверните приложение Spring Batch в Spring Cloud Data Flow, запустив пакетный микросервис отдельно. - PullRequest
1 голос
/ 15 мая 2019

У меня есть приложение Spring для пакетной обработки, в котором я хотел бы иметь два варианта запуска пакета:

  1. Предоставление API REST
  2. Планировщик

Упаковав пакетное приложение в качестве Задачи, я могу развернуть приложение на сервере SCDF, работающем отдельно.Я создаю приложение типа Task на сервере SCDF и ссылаюсь на файл jar пакетного приложения.И затем создание Задачи с помощью Задачи приложения.

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

Можно ли отдельно запускать пакетное приложение Spring в качестве загрузочного микросервиса Spring и регистрироваться в качестве задачи на сервере SCDF?

1 Ответ

2 голосов
/ 15 мая 2019

Можно ли запускать приложение Spring batch отдельно в качестве микросервиса загрузки Spring и регистрироваться в качестве задачи на сервере SCDF?

Нет, определение задачи в SCDF требуется , чтобы вы могли воспользоваться преимуществами конечных точек RESTful SCDF для запуска или планирования ее для повторяющихся запусков. В SCDF нет механизма автоматического обнаружения произвольного пакетного задания, работающего в автономном режиме. До тех пор, пока площадь не будет определена из SCDF, у нас нет возможности отслеживать отдельные приложения для управления.

Еще одно важное отличие, которое следует отметить: Задачи. Задачи в SCDF эфемерны. Они запускают, выполняют бизнес-операции и закрываются после завершения бизнес-логики.

Чтобы этот базовый дизайн работал на облачных платформах, таких как Kubernetes и Cloud Foundry, мы не ожидаем, что приложения Task / batch будут связаны с контроллерами RESTful. И, кроме того, нет никаких проверок работоспособности для задач. В тот момент, когда вы добавляете природу RESTful, она должна запускаться как долго работающее приложение (потому что вы хотите, чтобы конечная точка была доступна из других сервисов), что нарушит предпосылку проектирования Задач в облачных платформах.

...