Нужен ли Spring Spring, если мне нужно обрабатывать сервисы API вместо CSV-заданий?
Я пишу приложение, основной целью которого является получение данных от поставщика услуг (XXX), преобразование и передача их другому поставщику услуг (YYY) через HTTP REST.
Я могу сделать это с помощью простого цикла for, и я храню дату последнего извлеченного элемента в отдельной таблице. Таким образом, я могу продолжать извлекать элементы из последнего преобразованного элемента всякий раз, когда мне нужно, и я буду вести отдельную таблицу для хранения ошибочных записей и повторять эти ошибочные записи с периодическими интервалами также через CRON.
Нужно ли мне еще использовать SPRING Batch. Из того, что я вижу, это помогает модульному коду с Reader, Processor и Writer.
Я что-то пропустил? Могу ли я использовать Spring Batch и получить выгоду для синхронизации данных через HTTP-сервисы из точки A - точки B?
0 ответов
Вы все еще можете использовать Spring Batch по многим причинам. Вот неполный список с примером, связанным с вашим вариантом использования для каждой функции:
- Декларативный ввод / вывод: Spring Batch предоставляет богатую библиотеку читателей / писателей, и вам не нужно самостоятельно писать код ввода / вывода (открывать / закрывать ресурсы, читать необработанные данные, выполнять итерации по элементам и т. Д.). Spring Batch основан на Spring Framework, вы можете использовать все функции Spring Framework, такие как AOP, управление транзакциями и т. Д. В вашем случае вы можете использовать
RestTemplate
получить / отправить ресурсы - Отказоустойчивость: механизмы повтора / пропуска позволяют вам внести некоторую устойчивость в ваши пакетные задания. Например, в вашем случае, попробуйте снова обработать элемент, если остальная служба временно не работает.
- Обработка фрагментов: эта модель идеально подходит для огромных объемов данных. Данные читаются порциями, чтобы избежать чтения всех данных, установленных в памяти. В вашем случае вы можете позвонить на страницу, чтобы получить данные от конечной точки отдыха
- Управление транзакциями: Spring Batch управляет транзакциями для вас, чтобы вы не потеряли данные при возникновении ошибок. В вашем случае, вы упомянули сохранение элементов в таблицу базы данных, Spring Batch может управлять фиксацией / откатом транзакции для вас