Spring batch - настроить количество потоков - PullRequest
0 голосов
/ 18 января 2019

Я настроил TaskExecutor с maxPoolSize 1 и throttleLimit 1, и я вижу, что он работает с 2 потоками. Я хочу использовать мое весеннее пакетное приложение как однопоточное в данный момент и настроить эту возможность, просто увеличив число потоков в моем файле свойств позже, если это необходимо. Вопрос в том, почему он запускает 2 потока, если я упомянул размер пула и ограничение газа как 1.

как я нашел это?

Я устанавливаю

.throttleLimit(1)

и

asyncTaskExecutor.setConcurrencyLimit(1);

Я называю свой TaskExecutor как "poller_batch_thread", а в методе read () я печатаю имена потоков, начинающиеся с "poller_", и это то, что я вижу в журналах:

2019-01-21 10:08:50 INFO  m.d.s.a.b.reader.PortalMessageReader - Portal Message Read by Thread id 115 - Thread name: poller_batch_thread115
2019-01-21 10:08:50 INFO  m.d.s.a.b.reader.PortalMessageReader - Portal Message Read by Thread id 116 - Thread name: poller_batch_thread116

1 Ответ

0 голосов
/ 21 января 2019

Как уже было сказано, мне интересно, не является ли это основным потоком + потоком пула. Вы используете Task Executor, поэтому Spring Batch, возможно, переключается в режим Master / Slave. Я рекомендую вам сделать некоторую отладку и определить, какая реализация Tasklet используется, и посмотреть метод «execute», чтобы вы получили представление о том, что делается «за кулисами»:).

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

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