如何使用C#在Azure函数中使用ServiceBusTrigger自动续订消息超时?

时间:2019-01-15 13:02:52

标签: azure azure-functions azureservicebus

在结合使用ServiceBusTrigger和Azure函数来触发该函数在Service Bus队列中的新消息上执行时,它们似乎不是自动更新消息超时的方法。当然,您总是可以调用BrokeredMessage.RenewLock方法,但是使用Functions似乎无法配置它来自动更新消息锁定。

在处理服务总线队列消息时,是否有人发现将Azure功能配置为自动续订BrokeredMessage锁的方法?

是的,我知道您可以增加Service Bus Queue的默认超时时间,但是最大可配置默认超时时间是5分钟。仍然可能太短。

谢谢!

这里是一个示例,该示例在使用Visual Studio生成提到的Azure函数时,在C#中使用ServiceBusTrigger属性。请注意,ServiceBusTrigger的用法不允许设置超时持续时间,也不允许配置自动续订。

[FunctionName("MyFunction1")]
public static async Task Run(
    [ServiceBusTrigger("queuename", AccessRights.Listen, Connection = "AzureServiceBus")] BrokeredMessage sbCommand,
    ILogger log)
{
    // process message here
}

1 个答案:

答案 0 :(得分:1)

The function renews the message lock by itself. You don't need to renew the lock manually, it is handled by the run time of the function. Please refer this article.