Azure WebJobs和ServiceBusTrigger

inf*_*ity 8 c# azure azureservicebus azure-webjobs azure-webjobssdk

毒性消息处理如何为Azure WebJobs SDK工作ServiceBusTrigger?我希望将已经出队超过'x'次的服务总线队列消息推送到不同的ServiceBus(或)存储队列

在线文档这里这里和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();
        }
Run Code Online (Sandbox Code Playgroud)

Bre*_*een 7

看起来WebJobs目前在内部处理这个问题.

参考:如何将Azure Service Bus与WebJobs SDK一起使用

具体部分:

ServicebusTrigger如何工作

SDK以PeekLock模式接收消息,如果函数成功完成,则在消息上调用Complete;如果函数失败,则调用Abandon.如果该函数的运行时间超过PeekLock超时,则会自动更新锁定.

Service Bus执行自己的毒性队列处理,因此既不受WebJobs SDK控制,也不可配置.

附加参考

无法在Azure功能中控制或配置毒性消息处理.Service Bus本身处理有害消息.


Vic*_*aci 7

虽然您无法获取dequeueCountServiceBus消息的属性,但您始终可以绑定BrokeredMessage而不是NotificationMessage从中获取属性.