毒性消息处理如何为Azure WebJobs SDK的 ServiceBusTrigger
工作?我希望将已经出列超过'x'次的服务总线队列消息推送到不同的ServiceBus(或)存储队列
来自here的在线文档here和here以及SDK示例没有关于有害消息处理如何为ServiceBusTrigger工作的示例 . 这项工作正在进行中吗?
我尝试使用 dequeueCount
参数实现自定义病毒邮件处理,但它看起来不支持ServiceBusTriggers,因为我得到了运行时异常 {"Cannot bind parameter 'dequeueCount' when using this trigger."}
public static void ProcessMessage([ServiceBusTrigger(topicName: "abc", subscriptionName: "abc.gdp")] NotificationMessage message,
[Blob("rox/{PayloadId}", FileAccess.Read)] Stream blobInput, Int32 dequeueCount)
{
throw new ArgumentNullException();
}
3 回答
虽然您无法获取ServiceBus消息的
dequeueCount
属性,但始终可以绑定到BrokeredMessage
而不是NotificationMessage
并从中获取属性 .看起来WebJobs目前在内部处理这个问题 .
参考:How to use Azure Service Bus with the WebJobs SDK
具体部分:
Additional Reference
为了添加Brendan Green的答案,WebJobs SDK会对无法处理的消息调用Abandon,并且在最大重试次数之后,这些消息将被服务总线移动到死信队列 . 可以在Service Bus - > Queue - > Properties中更改定义何时将消息移动到死信队列中的属性,例如最大传送计数,生存时间和PeekLock持续时间 .
您可以在此处找到有关SB死信队列的更多信息:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues