2017-06-13 1 views
0

En temps réel, j'ai peu de files d'attente de bus de service azur. Chaque file d'attente a sa propre limite par défaut de compte de livraison de message. Lorsque le nombre de livraisons dépasse le nombre de livraisons, les messages se déplacent vers la "file d'attente de lettres mortes".Comment réinitialiser le "compte de livraison" pour chaque message rompu dans le bus de service azure?

Maintenant, je dois rediffuser les messages DeadLetter à la file d'attente d'origine pour retraitement. En raison du nombre de livraisons, il repousse le message en lettre morte.

Je ne souhaite pas modifier le nombre de livraisons de la file d'attente maximale. Maintenant, comment puis-je réinitialiser le compte de livraison sur chaque message cassé?

+0

Comment faites-vous passer les messages de DLQ à la file d'attente? – Mikhail

Répondre

3

Azure Service Bus ne prend pas en charge la resubmission des messages en tant que telle. Il n'y a pas de mécanisme intégré pour renvoyer le même message de la file d'attente Dead-Letter à la file d'attente. Ainsi, "repost" signifie que vous récupérez un message de DLQ, puis créez un nouveau message avec les propriétés copiées à partir du message DLQ et enfin envoyez ce nouveau message à la file d'attente d'origine.

À ce stade, le nombre de livraisons du nouveau message doit être 0 prêt à l'emploi.

+0

Même nouveau message aussi son carrycount. –

+0

Ce n'est pas possible à ma connaissance. Le nouveau message est un nouveau message, comment pourrait-il même connaître le compte de livraison de l'ancien message? Comment relocalisez-vous les messages de DLQ à la file d'attente? – Mikhail

+0

Ce que @Mikhail a dit. Pour "re-soumettre", vous devez créer un nouveau message avec copié sur la charge utile/en-têtes. –