Le "problème", tel qu'il est, est sur le côté serveur: le client a fait un bien formé, mais le serveur ne peut pas la satisfaire. Je suis donc enclin à une "Erreur de Serveur", 5xx code d'état. Dit - le standard:
Le statut de la réponse codes commençant par le chiffre "5" indiquer les cas dans lesquels le serveur est conscient qu'il a commis une erreur ou est incapable de remplir la demande... le serveur DOIT inclure une entité [indiquant] si elle est temporaire ou permanente de la condition.
Note
- "a commis une erreur ou est incapable de remplir la demande": en dépit de leur titre de "Erreur de Serveur", ils ne sont pas seulement pour les erreurs de serveur.
- "temporaires ou permanentes": ces codes sont adaptés pour temporairement indisponible ressources, comme la vôtre.
Des codes disponibles, je dirais 503, "Service non disponible" était le mieux adapté:
Le serveur est actuellement incapable de répondre à la demande en raison d'une surcharge temporaire ou de la maintenance du serveur. L'implication est que c'est un état temporaire qui seront atténués après un certain délai. Si elle est connue, la durée de cette temporisation PEUT être indiqué dans un Retry-After-tête. Si pas de nouvelle tentative-Après est donné, le client DOIT gérer la réponse comme il le ferait pour une réponse 500.
Note:
- "une condition temporaire qui seront atténués après un peu de retard": true pour votre cas.
- temporaires "surcharge": pas de manière affectée vrai pour votre cas. Mais, il pourrait être soutenu, ont été votre serveur beaucoup plus rapide, le traitement par lots aurait déjà été fait lorsque le client en fait la demande, de sorte qu'il est une sorte de "surcharge": le client demande pour les ressources plus vite que le serveur peut les rendre disponibles.
- "le client DOIT gérer la réponse comme il le ferait pour une réponse 500.": qui est "Erreur Interne du Serveur", le genre de réponse que lorsque le serveur échoue à cause d'un bug. La norme semble être ce qui implique qu'un bien comportés client doit pas réessayer dans ce cas. Nouvelle tentative est adapté à votre service, pour que votre réponse doit inclure un
Retry-After
de la valeur. Vous pouvez fournir la valeur de l'estimation des temps de réalisation de la prochaine exécution du traitement par lots, ou de l'exécution de l'intervalle du processus de traitement par lots.
Définition de vos propres 5xx code d'état (591, par exemple), bien qu' autorisée, aurait la mauvaise sémantique:
Les codes d'état HTTP sont extensibles... les demandes DOIVENT comprendre la classe de code d'état, comme indiqué par le premier chiffre, et traiter les non reconnus réponse comme étant équivalent à la x00 code d'état de la classe
Les Clients de traiter votre propre code d'état, 500, "Erreur Interne du Serveur", qui, comme je l'ai expliqué ci-dessus) ne serait pas juste.