весенний пакет - как отправить работу без выполнения? чтобы иметь возможность запустить их позже с помощью планировщика - PullRequest
0 голосов
/ 22 января 2020

Я запускаю проект в весеннем пакете, мой план такой:

  1. создать приложение для весенней загрузки
  2. выставить API для отправки задания (без выполнения) , который вернет идентификатор выполнения задания, чтобы другие клиенты могли отслеживать ход выполнения задания позже
  3. создать планировщик для выполнения задания - я хочу иметь лог c, который определит, сколько задания, которые я могу запустить в любой момент.

проблема в том, что моя пакетная служба может получать много запросов на запуск заданий, и я хочу сначала перевести выполнение задания в состояние ожидания, а затем планировщик позже on проверит задания, находящиеся в состоянии ожидания, и в зависимости от моего логика c решит, следует ли запускать другие заданные задания.

это можно сделать в весеннем периоде, или мне нужно реализовать это с нуля?

1 Ответ

2 голосов
/ 22 января 2020

Распространенным способом решения такого варианта использования является отделение передачи задания от выполнения задания с помощью очереди. Это подробно описано в разделе Запуск пакетных заданий через сообщения . Ваш контроллер может принимать запросы на работу и помещать их в очередь. Затем планировщик может контролировать количество запросов на чтение из очереди и запускать задания соответственно.

Spring Batch предоставляет все строительные блоки (JobLaunchRequest, JobLaunchingMessageHandler и др. c) для реализации этого шаблона.

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