Я пытаюсь реализовать бизнес-потребность с помощью Spring и испытываю некоторые проблемы с управлением транзакциями.
Бизнес-потребность заключается в том, чтобы просто
1) запросить базу данных (№1) с некоторыми критериями.
2) Запишите результаты запроса в плоский файл.
3) Обновите эти записи в базе данных (№1) как «обработанные».
4) Вставьте записи в другую базу данных (# 2) в результате первых трех шагов.
Мне нужно, чтобы эти 4 шага были простыми. Например, если на 4-м шаге произошел сбой, последний элемент, записанный в плоский файл на 2-м шаге, должен быть откат. Я нашел "Диспетчер файловых ресурсов Apache Commons" для реализации механизма отката с файлами.
Мой наставник рекомендовал мне использовать Spring Batch в основном для подобных проектов. Однако, учитывая тот факт, что Spring Batch использует стиль «фрагментно-ориентированной обработки», его довольно сложно реализовать с помощью Spring Batch. Потому что, насколько мне известно, стиль, ориентированный на блоки, требует, чтобы второй шаг был завершен для всего блока, а затем он позволяет перейти к третьему и четвертому шагам в моей реализации.
Думаю, мне нужен общий совет об этом проекте и о том, следует ли использовать Spring Batch для этой цели. Кроме того, стоит ли попытаться реализовать эти потребности в параллельной среде, поскольку механизм отката будет довольно сложным для этого стиля.