Я работаю над проектом, где я собираюсь использовать Spring Batch и Spring Integration для создания системы документооборота. Эта система документооборота должна иметь возможность читать сообщения из очередей, которые на самом деле являются запросами на работу от клиентов, и в зависимости от типа запросов на задание мне нужно вызывать некоторые 7-8 систем.Различные комбинации шагов весенней партии
Каждая система считывает входные файлы из некоторого местоположения (обычно это централизованная система хранения, в которой все входные файлы хранятся как отправленные клиентами), обрабатывает ее, а затем передает ее следующей системе и в конечном итоге я могу дать ответ для клиентов, таких как SUCCESS, если он обрабатывается всеми системами успешно и FAILED, если какая-либо система не может обработать файл, и если это не удается, клиент должен иметь возможность перезапустить неудавшееся задание с шага, на котором он действительно не удалось.
Я собираюсь добавить каждую систему в качестве шага в Spring Batch, а затем использовать Spring Integration. Я собираюсь моделировать конкретный поток системы. FTP получает файлы, отправляет запрос JMS/SMAPI, получает ответ JMS, файлы FTP обратно. и т.д.
Мои вопросы:
- Является ли это правильный подход?
- Если «да», каковы требования к настройке производительности при использовании Spring Batch и Spring Integration?
- Поскольку все системы не будут вызываться в одном и том же порядке все время, как написать все возможные комбинации с использованием Spring Batch в качестве потенциальных заданий Spring Batch?