2017-01-30 1 views
0

Considérons une file d'attente.Période de rétention Amazon SQS

J'ai j1 ... jn emplois (ou messages) dans la file d'attente.

Je suis au courant quand j termine, dans ce cas je les supprime.

Je suis également conscient que j ne se termine pas et dans ce cas, je ne les supprime pas intentionnellement afin qu'il retourne dans la file d'attente.

Je souhaite conserver indéfiniment un travail inachevé dans la file d'attente, mais je sais qu'il existe une période de rétention pour j. Je suis également conscient de DLQ, mais ne souhaite pas l'implémenter car ce n'est pas une erreur (pas besoin de chercher & debug).

Mes questions sont les suivantes:

  1. Est-ce que les emplois qui sont lus et ne jamais être supprimés attribué une période de conservation frais (après sa lecture ou après sa requeued)?
  2. La suppression d'un message et l'envoi d'un message avec la même instruction (ou le même corps du message) ont-ils une période de rétention rafraîchie?

Répondre

3

La durée de conservation maximale d'un message dans une file d'attente Amazon SQS est de 14 jours. C'est à partir du moment où il est placé dans la file d'attente, peu importe s'il a été lu et si la visibilité a changé. (Certes, je n'ai trouvé aucune documentation qui l'indique spécifiquement.)

Si un message est supprimé de la file d'attente et qu'un nouveau message est envoyé dans la file d'attente, ce nouveau message sera traité comme un message différent de sa propre période de rétention. Ainsi, vous pouvez théoriquement recevoir, supprimer et envoyer un message pour le "conserver" dans la file d'attente, mais cela va à l'encontre du but architectural d'une file d'attente. Si vous conservez des informations pendant de longues périodes, une forme de base de données serait souhaitable.

+0

Je stocke uniquement le retour des tâches dans une base de données, ce qui peut parfois prendre plus de 14 jours. Merci pour la réponse rapide! – taesu

+0

Et quelle est la période de conservation par défaut? –

+0

@AbdennourTOUMI, La période de rétention par défaut est définie dans la file d'attente lorsque vous créez la file d'attente. –