Spring Cloud Task Launcher, который обрабатывает сбой - PullRequest
0 голосов
/ 29 марта 2020

Я создаю небольшой пример приложения с помощью простого средства запуска задач для локального запуска новых задач (spring-cloud-deployer-local:2.2.2.RELEASE). Код ниже получает события через поток и запускает новые задачи локально, как и ожидалось.

@EnableTaskLauncher
@SpringBootApplication
public class Application {
  public static void main(final String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

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

spring:
  application:
    deployer:
      local:
        maximum-concurrent-tasks: 5

И это работает, как и ожидалось если запущено 5 задач и запущена другая задача, генерируется исключение, как и ожидалось.

Проблема, с которой я столкнулся, заключается в том, что задание, которое не удалось запустить, теперь потеряно, и действие типа «повтор» не происходит.

Кто / как / где должен обрабатывать событие повтора? Я просто выталкиваю задачи в поток, это ответственность службы, которая подталкивает эти задачи к pu sh снова той же задаче?

Должен ли я использовать что-то вроде Spring Batch для управления этим?

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