У меня есть очередь, и когда я отправляю сообщения в эту очередь, я вижу, что большинство сообщений попадают в очередь недоставленных сообщений. Я хочу повторно отправить их в ту же очередь..
Мне было бы очень полезно, если бы кто-нибудь мог предложить мне какое-либо решение.
Как получать сообщения из очереди недоставленных сообщений из очереди служебной шины Azure
comment
Возможный дубликат Как вы получить доступ к подочереди недоставленных сообщений в подписке Azure?
- person Evan Mulawski   schedule 21.01.2018
Ответы (1)
Один из возможных способов — получить сообщения из очереди недоставленных сообщений и отправить их в обычную очередь.
Код Python
Шаг 1. Получите сообщения из очереди недоставленных сообщений:
from azure.servicebus import ServiceBusClient
import json
connectionString = "Your Connection String to Service Bus"
serviceBusClient = ServiceBusClient.from_connection_string(connectionString)
queueName = "Your Queue Name created in the Service Bus"
queueClient = serviceBusClient.get_queue(queueName)
with queueClient.get_deadletter_receiver(prefetch=5) as queueReceiver:
messages = queueReceiver.fetch_next(timeout=100)
for message in messages:
# message.body is a generator object. Use next() to get the body.
body = next(message.body)
# Store the body in some list so that we can send them to normal queue.
message.complete()
Шаг 2. Отправка сообщений в обычную очередь:
from azure.servicebus import ServiceBusClient, Message
connectionString = "Your Service Bus Connection String"
serviceBusClient = ServiceBusClient.from_connection_string(connectionString)
queueName = "Your Queue name"
queueClient = serviceBusClient.get_queue(queueName)
messagesToSend = [<List of Messages that we got from the dead letter queue>]
with queueClient.get_sender() as sender:
for msg in messagesToSend:
sender.send(Message(msg))
Надеюсь это поможет.
person
anilkumar kasaragadda
schedule
21.06.2019