我有一个由队列消息触发的webjob。如果作业太长,则消息会重新出现在队列中,并且会触发新的webjob实例并使用相同的消息。这并不意味着。
如何在重新出现之前将消息隐藏在队列中时设置时间跨度?
答案 0 :(得分:1)
Azure队列消息具有可见性超时值(以秒为单位),您可以在消息再次可见之前随时以编程方式设置。
您还没有提到您编写的语言,但从原始REST API的角度来看,您只需要执行更新消息操作(队列上的PUT
信息)。来自文档:
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds>
通过.net(c#):
var message = queue.GetMessage();
queue.UpdateMessage(message,
TimeSpan.FromSeconds(30),
MessageUpdateFields.Visibility);
有关API通话详情,请参阅here。