Как разрешить только одну активную задачу @Async? - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть метод, который получает файл, и этот файл затем обрабатывается. Но обработка занимает довольно много времени, поэтому я хочу сделать это в фоновом режиме и просто сказать пользователю, что этот файл будет обработан сейчас. Но мое требование заключается в том, чтобы эту задачу можно было вызвать только после завершения вызова. Таким образом, пользователь должен получить ошибку, которую он должен ждать.

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

Так как я могу это сделать? И будет ли какой-либо способ запросить, завершена ли эта задача или нет, чтобы клиент мог обновить состояние и получить флаг, если задача завершена или нет?

1 Ответ

1 голос
/ 11 декабря 2019

В вашем асинхронном методе установите флаг общей задачи data «taskProcessing» в true и в конце установите в false. И вернуть ошибку, когда задача вызывается снова и taskProcessing имеет значение true. Просто.

...