gpt4 book ai didi

azure - QueueTrigger 属性可见性超时

转载 作者:行者123 更新时间:2023-12-04 17:34:31 27 4
gpt4 key购买 nike

如果我要使用 Azure.Storage.Queue 从队列中获取消息

queue.GetMessage(TimeSpan.FromMinutes(20));

我可以设置可见性超时,但是当尝试使用 Azure.WebJobs(SDK 0.4.0-beta)属性将 WebJob 自动绑定(bind)到队列时

public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message){
//do something with queue item
}

有没有办法设置属性的可见性超时? JobHostConfiguration().Queues 中似乎没有选项。如果没有办法重写的话,那是标准的30秒吗?

最佳答案

在最新的 v1.1.0 版本中,您现在可以通过 JobHostConfiguration.Queues.QueueProcessorFactory 注册您自己的自定义 QueueProcessor 实例来控制可见性超时。这使您可以全局或按队列/函数控制高级消息处理行为。

例如,要设置失败消息的可见性,您可以重写 ReleaseMessageAsync,如下所示:

protected override async Task ReleaseMessageAsync(CloudQueueMessage message, FunctionResult result, TimeSpan visibilityTimeout, CancellationToken cancellationToken)
{
// demonstrates how visibility timeout for failed messages can be customized
// the logic here could implement exponential backoff, etc.
visibilityTimeout = TimeSpan.FromSeconds(message.DequeueCount);

await base.ReleaseMessageAsync(message, result, visibilityTimeout, cancellationToken);
}

更多详细信息可以在release notes here中找到.

关于azure - QueueTrigger 属性可见性超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com