我正在使用azure服务总线主题和订阅机制,并希望处理所有在死信队列中的消息。
此外,我想通过C#中的azure web作业处理消息,并将它们发送回队列。所以我想知道如何通过我的应用程序处理死信队列中的消息?
发布于 2017-10-20 21:47:43
当一条消息是死信消息时,它会进入从其中读取该消息的订阅的死信队列。访问它就像访问原始订阅一样,只是需要将/$DeadLetterQueue附加到订阅名称之后。
发布于 2017-10-24 16:38:05
此外,我想通过C#中的azure web作业处理消息,并将它们发送回队列。
正如spodger指出的,deadletter订阅的路径是:
{topic-path}/Subscriptions/{subcription-name}/$DeadLetterQueue您可以使用Service Bus的WebJobs SDK并利用ServiceBusTrigger来访问您的死信队列消息,如下所示:
public void ProcessDeadletterQueue(
[ServiceBusTrigger("topicName", "subscriptionName/$DeadLetterQueue")] BrokeredMessage message)
{
//TODO:
}有关更多详细信息,请参阅here。
发布于 2018-10-09 12:21:30
当消息是来自服务总线实体(队列或主题订阅)的死信时,它将被移动到同一实体的死信路径。消息的自定义属性DeadLetterReason和DeadLetterErrorDescription.中提供了死字的原因
为了接收死信消息,
string path = Microsoft.ServiceBus.Messaging.SubscriptionClient.FormatDeadLetterPath(topicPath, subscriptionName);
var subscriptionClient = SubscriptionClient.CreateFromConnectionString(connectionString, path);
BrokeredMessage message = subscriptionClient.Receive();https://stackoverflow.com/questions/46847475
复制相似问题