Можете ли вы указать разных исполнителей для запланированных задач в Spring? - PullRequest
0 голосов
/ 23 октября 2019

Spring использует одного и того же исполнителя для всех @Scheduled задач. Который по умолчанию имеет 1 поток, но вы можете создать пользовательский с несколькими.

Ситуация : у меня есть 2 типа заданий, которые я хочу запланировать:

  1. длительных фоновых заданий: не обязательно запускать их вовремя, не хотят, чтобы все они выполнялись одновременно, и определенно не хотят, чтобы одновременно выполнялось более одного задания (решение: используйтефиксированная задержка с ограниченным пулом потоков
  2. частые, кратковременные задания, которые должны выполняться по расписанию. (решение: используйте фиксированную ставку с @Async)

Проблема : медленные задания в ограниченном пуле прямо против запуска других с @Async В идеале, у меня было бы 2 отдельных исполнителяЯ мог бы назначить что-то вроде

@Scheduled(delayedRate=600000, executor="longRunningExecutor") и @Scheduled(fixedRate=5000, executor="rightNowExecutor")

, но я не могу найти ничего поддерживающего что-то вроде этого.

Как я могу обеспечить долгосрочнуюзапущенные задания не забивают пул потоков и не блокируют прямо сейчас?

1 Ответ

0 голосов
/ 24 октября 2019

Похоже, ответ "они работают над этим" https://github.com/spring-projects/spring-framework/issues/20818

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