【发布时间】:2012-11-16 02:15:34
【问题描述】:
我正在使用 Azure 队列,并且有几个不同的进程从队列中读取数据。
我的系统的构建方式假定每条消息只读取一次。
此Microsoft article 声称 Azure 队列具有至少一次传递保证,这可能意味着两个进程可以从队列中读取相同消息。
这个StackOverflow thread 声称,如果我使用 GetMessage 则消息对于所有其他进程变得不可见,因为不可见超时。
假设我使用 GetMessage() 并且在我 DeleteMessage 之前从未超过消息不可见时间,我可以假设我只会收到每条消息一次吗?
【问题讨论】:
-
我想你可以假设。
-
我向我的 Microsoft Azure 联系人提出了以下问题:“我严重依赖队列,并希望确保如果我 GetMessage() 然后 DeleteMessage() ,没有其他进程将获得来自队列的相同消息。根据Microsoft article,队列没有 At-Most-Once 保证。这是否意味着两个进程可以读取相同的队列消息并处理它?回应:是的——这正是它的意思。如果您希望每条消息都将在您必须使用 ServiceBus 队列时准确进行。
标签: azure azure-storage azure-storage-queues