web-dev-qa-db-fra.com

Le code d'état HTTP pour la base de données est en panne

J'ai une page sur mon site Web qui rend compte de la santé du site et définit un code d'état HTTP 200, tout va bien. Cette page est utilisée par un programme de surveillance externe pour vérifier que le site est opérationnel.

Lorsque cette page est consultée, j'effectue un appel de proc de base de données très léger pour voir si la base de données est opérationnelle. Si cela échoue, je veux renvoyer un code d'erreur HTTP significatif au moniteur pour lui faire savoir que tout ne va pas bien.

D'après ce que je peux savoir, il n'y a pas d'état HTTP qui indique "un composant tiers sur lequel je m'appuie est en panne", alors que retourneriez-vous dans ce cas?

503 Service Indisponible...?

41
Guy

Je soupçonne qu'un 500 ou 503 serait approprié. Le 503 est généralement utilisé pour des conditions de surcharge ou de maintenance, mais je ne pense pas qu'il serait déraisonnable de l'utiliser dans votre situation.

34
Thomas Owens

C'est exactement ce qu'est un 503.

503 signifie que le serveur comptait sur la connexion d'un autre service, qui n'a pas répondu à temps.

Erreur de serveur 5xx

Vérifié sur Wikipedia et la liste semble impliquer qu'un 504 serait celui auquel je pense. Il est possible que le lien soit dépassé.

Alors:

504 portail expiré

Le serveur faisait office de passerelle ou de proxy et n'a pas reçu de demande en temps opportun du serveur en aval.

35
Tomas