Spring batch - многопоточная среда - PullRequest
0 голосов
/ 12 ноября 2018

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

Я хочу, чтобы 5 потоков, работающих в каждом потоке, сохраняли смещение, чтобы отслеживать, какое событие он прочитал, чтобы ни один другой поток не прочитал это событие снова. Как я думаю сделать это:

Thread 1 will pick up the event if eventId % 5 == 1
Thread 2 will pick up the event if eventId % 5 == 2
Thread 2 will pick up the event if eventId % 5 == 3
Thread 2 will pick up the event if eventId % 5 == 4
Thread 2 will pick up the event if eventId % 5 == 0

, поэтому я хочу иметь возможность сохранять смещение в таблице базы данных для каждого потока. Есть ли способ заставить среду загрузки Spring работать таким образом?

1 Ответ

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

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

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

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