"Проблема", така, як вона, є на стороні сервера: клієнт зробив добре сформований запит, але сервер не може його задовольнити. Тому я схильний до "Помилки сервера", коду стану 5хх.
Quoth RFC 7231 (поточний стандарт HTTP, додано наголос):
Клас коду статусу 5xx (помилка сервера) вказує на те, що сервер знає, що він помилився або не може виконати запитуваний метод . За винятком випадків, коли відповідаючи на запит HEAD, сервер ДОЛЖНІ надсилати представлення, що містить пояснення ситуації з помилками та чи є вона тимчасовою чи постійною умовою.
Примітка
- "помилка або нездатна виконати запит": незважаючи на назву "Помилка сервера", вони не стосуються лише помилок сервера.
- " тимчасовий або постійний": ці коди підходять для тимчасово недоступних ресурсів, як ваш.
З доступних кодів, я б сказав, 503, "Сервіс недоступний" найкраще підходить:
Код стану 503 (Служба недоступний) вказує, що сервер наразі не в змозі обробити запит через тимчасову перевантаження або планове технічне обслуговування, яке, ймовірно, буде полегшено після деякої затримки. Сервер МОЖЕ надсилати поле заголовка Retry-After ... щоб запропонувати клієнту відповідну кількість часу, перш ніж повторити спробу.
Примітка:
- "ймовірно, буде полегшено через деяку затримку": вірно для вашого випадку.
- "тимчасова перевантаження": не відповідає дійсності для вашої справи. Але можна стверджувати, були сервер набагато швидше, ніж пакетна обробка буде вже зроблено , коли клієнт зробив запит, так що це свого роду «перевантаження»: клієнт запитує ресурси швидше , ніж сервер може зробити їх доступні.
- Повторна спроба підходить для вашої послуги, тому відповідь повинна містити
Retry-After
значення. Ви можете надати як значення приблизний час завершення наступного виконання пакетного процесу або інтервал виконання пакетного процесу.
Визначення власного коду статусу 5xx (наприклад, 591), хоча і дозволено , матиме неправильну семантику:
клієнт ОБОВ'ЯЗКОВО розуміє клас будь-якого коду статусу, як зазначено у першій цифрі, і трактує нерозпізнаний код статусу як еквівалентний коду статусу x00 цього класу
Клієнти трактують ваш власний код статусу як 500 "Внутрішня помилка сервера" , що було б невірно.