Приложение Spring Cloud Stream VS Приложение Spring Cloud Task

Я изучаю SCDF для оркестровки существующей пакетной задачи для моей системы. Я заметил, что SC Stream App Starters уже предоставляет несколько готовых к использованию потоковых приложений OOTB, что соответствует моему варианту использования:

  1. Извлечение файла xml с FTP -> источник ftp
  2. Настроить трансформацию
  3. Загрузите преобразованный XML-файл на другой FTP -> приемник ftp

Но моя система требует, чтобы вышеупомянутое пакетное задание выполнялось только каждые 10 минут. Реализовать его с использованием потокового приложения можно, но для этого требуется, чтобы потоковое приложение работало круглосуточно (с использованием SCDF с Kubernetes). Меня беспокоит то, что у меня есть 20+ вышеуказанных пакетных задач, и каждое потоковое приложение должно быть «запущено», чтобы запускаться с интервалом в 10 минут.

Прочитав Spring Cloud Task, я заметил, что он лучше подходит для моего использования, так как не требует, чтобы потоковые приложения постоянно работали (недолго). Но у него нет готового OOTB для использования необходимых мне приложений задач: ftp-source и ftp-stream.

Кроме того, использование Spring Cloud Task не позволяет мне передавать XML-файл из предыдущего приложения задачи в следующее. Похоже, это запах кода для передачи данных от задачи к задаче согласно прокомментируйте этот вопрос.

Затем, чтобы реализовать вышеупомянутый вариант использования, task-app-1 загрузит XML-файл и выведет его в какое-то хранилище, затем task-app-2 заберет XML-файл из хранилища и выполнит настройку преобразования и загрузит в другое хранилище. . Затем task-app-3 берет XML-файл и загружает его на ftp. Будет ли это уместно ??

Кроме того, у меня также есть идея зарегистрировать несколько потоков с помощью вышеуказанного варианта использования и запустить развертывание потока через внешний источник (SCDF REST API)? Пресечет ли это цель существующей функции расписания задач?

Кто-нибудь может посоветовать по этому поводу?


person mengjiann    schedule 10.01.2019    source источник


Ответы (1)


В вашем случае, как вы узнали, вам необходимо создать набор пакетных заданий, отвечающих вашим требованиям. Вы можете проверить этот пример в качестве справки. Кроме того, вы можете использовать Composed Task Runner для управления этим конкретным случаем. Для получения дополнительной информации о составленных задачах вы можете обратиться к документация и пример здесь

person Ilayaperumal Gopinathan    schedule 23.09.2019