Мое предложение заключается в том, что вы должны сделать внешний запрос о статусе задания, а не ждать его завершения и ответить, потому что задание может занять очень много времени.
Ваш API для запуска начало работы должно вернуть идентификатор работы, вы можете получить идентификатор работы в объекте JobExecution
. Этот объект возвращается при вызове JobLauncher.run
.
. Затем вы реализуете API-интерфейс Query в своем бэкэнде, чтобы получить статус задания по идентификатору задания. Вы можете реализовать это с помощью Spring JobExplorer
.
. Затем ваш интерфейс может вызвать этот API запросов, чтобы получить статус задания. Вы должны делать это с интервалом (например, 30 секунд, 5 минут, .et c в зависимости от вашей работы). Это предотвратит застревание вашего приложения в ожидании ошибок задания и тайм-аута.