Какой код http я должен вернуть, когда запрос отклонен во время выполнения процесса? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть REST API, который запускает тяжелый расчет на serveur (он тикает за несколько секунд). Для этого я возвращаю 202 (ПРИНЯТЫЙ) http-код клиенту, который не будет ожидать возвращаемого значения. Хорошо, пока.

Что я верну другому клиенту, как вызывает этот URL, пока процесс (запущенный первым вызовом) не завершен?

Этот второй вызов не будет обработан, он будет проигнорирован, и клиент должен повторить попытку позже .

1 Ответ

1 голос
/ 23 марта 2020

Если вы настаиваете на текущем поведении, то вы вернете 503 . Это сообщает клиенту (в соответствии со стандартом), что ваш сервер временно перегружен, и он может повторить попытку позже (вы можете даже намекнуть, если он может использовать заголовок Retry-After . Хотя и соответствует стандарту вы захотите сделать это, только если невозможно поставить в очередь процесс, запрошенный вторым вызовом позже, возможно, потому что внутреннее состояние будет изменено, так что второй вызов недействителен. Если возможно просто поставить процесс в очередь с идентичным результатом, как когда клиент вручную повторяет вызов, затем просто возвращает 202.

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