Промежуточное хранение результатов для службы REST Spring Batch processing - PullRequest
0 голосов
/ 11 ноября 2018

Я хотел бы получить документ из службы REST, обработать его с помощью Spring Batch, а затем отправить в другую службу REST, не сохраняя ничего в какую-либо базу данных.

Учитывая, что каждому Step нужны свои ItemReader и ItemWriter, я думаю, мне нужно будет реализовать один ItemReader, который будет загружать документы из службы ввода, один ItemWriter, который каким-то образом будет хранить промежуточные результаты в памяти, затем ItemReader, который будет считывать такие результаты из памяти для последующих шагов, и последний ItemWriter, который будет отправлять результаты после завершения всей обработки.

Это был бы хороший подход, или у кого-нибудь есть идеи получше?

1 Ответ

0 голосов
/ 11 ноября 2018

Я хочу получить документ из службы REST, обработать в Spring Batch, а затем отправить в другую службу REST

Вы можете сделать это за один шаг. Считыватель для получения данных от службы REST, процессор для обработки данных и запись для публикации / помещения данных в другую службу REST.

без сохранения чего-либо в любой базе данных.

Даже если вы не хотите что-либо сохранять в базе данных (я полагаю, вы имеете в виду отдельный сервер базы данных), вы все равно можете использовать базу данных в памяти и сохранять промежуточные результаты обработки в промежуточной таблице. Первым шагом будет получение данных из службы REST, их обработка и запись в промежуточную таблицу. Второй шаг читает данные из промежуточной таблицы и отправляет их во вторую службу REST. Преимущество этого метода в том, что вы можете выполнить агрегирование результатов обработки в промежуточной таблице перед началом второго шага.

Это был бы хороший подход, или у кого-нибудь есть идеи получше?

Третий способ сделать это - использовать промежуточную память java.util.Queue. Здесь вы можете использовать два шага, как с промежуточной таблицей, но используя очередь в качестве промежуточного хранилища.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...