Dav*_*gon 12
vtortola几乎涵盖了它,但我想更多地详细说明为什么它至少一次交付.
当您读取队列项时,它不会从队列中删除; 相反,它变得不可见但保留在队列中.隐身期限默认为30秒(最长:2小时).在此期间,从队列中获取项目的代码有足够的时间来处理队列消息中的任何命令并删除队列项.
假设在达到超时时间之前删除了队列项,一切都很顺利.但是:一旦达到超时时间,队列项将再次可见,并且保存队列项的代码可能不再删除它.在这种情况下,其他人可以读取相同的队列消息并重新处理该消息.
由于队列消息可以超时,并且可以重新出现:
有关get-queue低级REST API的更多详细信息,请访问此处.这将使您更深入地了解Windows Azure队列消息处理.
Azure队列无法确保消息顺序和消息唯一性.消息将被"至少一次"处理,但没有任何东西可以确保它不会被处理两次,因此它不能确保"最多一次".
您应该准备两次收到相同的消息.您可以在邮件正文中添加ID作为数据的一部分.
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |