Pratiques d'intervalle de relance de la file d'attente de messagerie

8

Je configure une file d'attente de messagerie personnalisée. Le problème est qu'il peut y avoir des erreurs lors de l'envoi du courrier. Normalement, on ne connaîtra pas la raison pour laquelle le courrier n'a pas atteint sa destination. La solution la plus simpliste consiste donc à réessayer d'envoyer le courrier. Voici quelques algorithmes que je connais de bouche:

  • Dupliquez le temps dans la file d'attente pour une nouvelle tentative commençant à un moment donné: 1 min, 2 min, 4 min, etc.
  • Spécifiez une série d'intervalles (qui sont un cas général de l'option précédente): 5 min, 5 min, 10 min, 30 min, etc.

À un moment donné, il sera inutile de réessayer d'envoyer le courrier. Quoi qu'il en soit, le système comprend un journal pour le courrier non envoyé.

Que savez-vous des bonnes pratiques dans ce domaine? Qu'est-ce qu'un "bon" intervalle d'attente? Au moins, quels faits dois-je prendre en compte pour choisir les intervalles?

Andras Gyomrey
la source

Réponses:

6

Vous devez suivre la RFC 5321 qui indique explicitement comment implémenter les stratégies de nouvelle tentative: http://tools.ietf.org/html/rfc5321#section-4.5.4

Vous devez lire complètement (et comprendre!) Ce RFC lorsque vous essayez d'implémenter votre propre serveur de messagerie. Mais je dois souligner explicitement qu'il n'est presque pas nécessaire d'implémenter votre propre serveur de messagerie (client). Il existe de nombreuses solutions existantes (testées!) Qui sont productives pendant des années et des décennies. Utilisez donc les logiciels existants au lieu de partir de zéro. Cela ne vaut pas la peine que vous rencontrerez. Connaissez-vous même IPv6? Sinon, vous devriez!

mailq
la source
3
Il n'y a pas d'obligation absolue de s'en tenir aux RFC bien sûr, mais il est fortement conseillé si le système doit fonctionner un jour sur Internet. Bien qu'il puisse y avoir des raisons d'implémenter une propre file d'attente de messagerie, je suis entièrement d'accord pour dire que le code existant utilisé dans le logiciel de serveur de messagerie devrait être réutilisé au lieu de réinventer la roue.
le-wabbit