Pur*_*ome 7 .net c# azure azure-queues
使用任何正常的Azure队列,我弹出一条消息,然后做一些工作.在完成工作之前,我不想删除该消息.
多久该消息保持隐藏它被视为失败,是由前可见再次在队列中?
例如.
var message = myQueue.GetMessage();
// Do Work ..
myQueue.DeleteMessage();
Run Code Online (Sandbox Code Playgroud)
我的工作可能需要30秒或者其他什么.或者如果花了1分钟或2分钟会发生什么?
我基本上不希望在工作完成之前再次提供消息,让另一个工作人员将其从队列中弹出..即使这个工作者仍在工作.
我们可以设置'隐藏'时间吗?
Gau*_*tri 16
我们可以设置'隐藏'时间吗?
是.您可以设置将消息隐藏给其他呼叫者的时间.如果您查看REST API文档Get Messages,它需要一个名为的参数visibilitytimeout.此参数负责将消息隐藏指定的秒数.在该时间段过去之后,如果未删除该消息,则该消息再次可见.
在消息被视为失败并在队列中再次显示之前,该消息会保留多长时间?
如果您使用的是.Net Storage Client库,则可以选择指定可见性超时期限.查看Get Message可以指定可见性超时的文档.由于这是库中的可选参数(但在REST API级别需要),因此库提供的默认值为90秒.
Nei*_*zie 10
您可以将Visibility Timeout指定为其中一个GetMessage()重载的参数.您还可以使用UpdateMessage()来扩展消息的不可见性.但是,您永远无法保证消息不会被处理两次 - 例如,消费者在完成工作之后但在删除消息之前已经死亡.Windows Azure Queues是一种尽力而为的FIFO队列 - 至少具有一次语义.
| 归档时间: |
|
| 查看次数: |
8796 次 |
| 最近记录: |