Нужен ли Spring Spring, если мне нужно обрабатывать службы API вместо CSV-заданий? - PullRequest
0 голосов
/ 02 декабря 2018

Я пишу приложение, основной целью которого является получение данных от поставщика услуг (XXX), преобразование и передача их другому поставщику услуг (YYY) через HTTP REST.

Я могу сделать это с помощью простого цикла for, и я сохраняю дату последнего извлеченного элемента в отдельной таблице.Поэтому я могу продолжать извлекать элементы из последнего преобразованного элемента всякий раз, когда мне нужно, и я буду вести отдельную таблицу для хранения неудачных записей и повторять попытки этих неудачных записей с периодическими интервалами также через CRON.

Нужно ли мне все ещеиспользовать SPRING Batch.Из того, что я вижу, это помогает модульному коду с Reader, Processor и Writer.

Я что-то упустил?Могу ли я использовать Spring Batch и получить выгоду для синхронизации данных через HTTP-сервисы из точки A - точка B?

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать Spring Batch по многим причинам.Вот неполный список с примером, связанным с вашим вариантом использования для каждой функции:

  • Декларативный ввод / вывод: Spring Batch предоставляет богатую библиотеку читателей / писателей, и вам не нужно писатькод ввода / вывода самостоятельно (открывать / закрывать ресурсы, читать необработанные данные, выполнять итерации по элементам и т. д.).Spring Batch основан на Spring Framework, вы можете использовать все функции Spring Framework, такие как AOP, управление транзакциями и т. Д. В вашем случае вы можете использовать RestTemplate для получения / получения ресурсов
  • Отказоустойчивость: механизмы повтора / пропуска позволяют вам внести некоторую устойчивость в ваши пакетные задания. Например, в вашем случае, попробуйте снова обработать элемент, если служба отдыха временно не работает.
  • Ориентированная на куски обработка: эта модель идеально подходит для огромных объемов данных.Данные читаются порциями, чтобы избежать чтения всех данных, установленных в памяти. В вашем случае вы можете позвонить на страницу, чтобы получить данные от конечной точки отдыха
  • Управление транзакциями: Spring Batch управляет транзакциями для вас, чтобы вы не потеряли данные при возникновении ошибок, В вашем случае, вы упомянули о сохранении элементов в таблице базы данных, Spring Batch может управлять фиксацией / откатом транзакции для вас
...