如果我使用Azure.Storage.QueueQueueTrigger属性可见性超时
queue.GetMessage(TimeSpan.FromMinutes(20));
试图用Azure.WebJobs(SDK时,我可以设置可见性超时,但是从队列得到一个消息0.4.0-测试版)的属性一webjob自动绑定到一个队列
即
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message){
//do something with queue item
}
有没有一种方法来设置该属性的可见性超时?在JobHostConfiguration()中似乎没有选项。队列。如果没有办法覆盖,那么它是标准的30秒吗?
visibilityTimeout的参数值总是默认为0.我试着通过_queue.UpdateMessage(message,new TimeSpan(0,2,0),MessageUpdateFields.Visibility)来设置它。但这似乎并不影响价值。任何想法如何设置这个参数的第一位或如何实现它? – Proteux 2016-07-19 17:13:20
在SDK的1.1.2版本中,visibilityTimeout被硬编码为10分钟,但在5分钟后,租约被扩展:https://github.com/Azure/azure-webjobs-sdk/blob/master/src/Microsoft .Azure.WebJobs.Host/Queues/Listeners/QueueListener.cs#L279-L289 – sjkp 2016-08-30 20:05:21
@john我刚刚在一个全新的1.1.2 SDK应用程序中验证了自己,应用了以上所做的重写超时。我也用了1分钟。在我添加自定义队列处理器覆盖之前,该消息连续快速重试5次。随着重写,每分钟重试一次。所以放心,它的工作。我建议你在我们的repo https://github.com/Azure/azure-webjobs-sdk/issues上用完整的代码和repro步骤记录一个bug,这样我们可以找出你可能会出错的地方。 – mathewc 2017-02-07 01:29:37