Я хотел создать приложение, которое слушает очередь и выполняет ряд шагов.
В основном приложение должно слушать Queue1 и:
- Получить некоторые данные из ServiceA[Небольшой объем данных]
- Получить данные от ServiceB[Небольшой объем данных]
- Обновить некоторую информацию в Сервисе C [На основании данных]
- Создайте количество сообщений [на основе данных] в Queue2.
Из-за того, что это приложение основано на потоке, весной я изучал систему выполнения заданий. Однако все шаги спроектированы так, чтобы быть идемпотентными, а данные, передаваемые между шагами, малы, поэтому мне не нужна база данных с этим приложением.
Для этого я начал изучать Spring Batch или Spring Task. Пакет Spring предоставляет действительно хорошие конструкции, такие как Tasklet и Steps, но есть ряд комментариев, рекомендующих подключить Spring Batch к базе данных и то, как он предназначен для надежного управления большими объемами данных (здесь мне не нужна надежность, поскольку очередь и идемпотентная природа обеспечивают это.). Хотя я могу передавать данные с помощью контекста выполнения, были рекомендации против этого.
Вопрос:
- Есть ли в экосистеме Spring Boot более простые стартеры, которые предоставляют рабочие процессы/Job-подобный интерфейс, который я должен использовать?
- Является ли это допустимым вариантом использования для Spring Batch или это чрезмерное проектирование/неправильное использование шагов?
Большое спасибо за помощь
Аюшман
P.S. Я могу предоставить точную информацию о работе, но не хочу объединять вопрос.




У меня было два достойных опыта работы с Spring Batch. Я не пробовал Spring Task.
Сказав это, мой ответ несколько предвзят. Spring Batch немного печально известен своей настройкой. Если ваше приложение достаточно простое, просто используйте «spring-boot-starter-amqp». Этого будет достаточно.
В любом случае, вы решите использовать Spring Batch (для его функций Job и Step Aspects или других функций), вы можете настроить только использование базы данных в памяти (поскольку вам не нужна функция повтора/отката). он обеспечивает).
Спасибо ! Я последовал твоему совету.