首页 文章

重置Azure存储队列消息的可见性

提问于
浏览
0

我的方案:我有一个Azure存储队列,可以随时进入消息 . 如果我在该队列中有10个项目,则必须按顺序处理它们 . 我正在使用c#和windows azure存储SDK .

如果第一个项目在2秒之后失败,则它在队列中保持不可见另外28秒(默认情况下为30秒隐身) .

现在,我的工作人员将继续检查队列中的消息并在何时处理它们 . 如果队列消息失败,它将保持不可见,因此在重试第一条消息之前将处理下一个队列项 .

对于需要按顺序处理项目的队列的任何人来说,这似乎是非常基本的功能 .

不,我无法将超时设置为较小的量,因为任务可能需要不同的时间长度 .

1 回答

  • 2

    George,如果您正在寻找按顺序处理项目的消息队列解决方案,您应该考虑使用 Azure Service Bus Queues

    作为解决方案架构师/开发人员,您应该考虑在以下情况下使用Service Bus队列:

    您的解决方案必须能够接收消息而无需轮询队列 . 使用Service Bus,可以通过使用Service Bus支持的基于TCP的协议使用长轮询接收操作来实现 .

    Your solution requires the queue to provide a guaranteed first-in-first-out (FIFO) ordered delivery .

    您希望在Azure和Windows Server(私有 Cloud )上获得对称体验 . 有关更多信息,请参阅Windows Server的Service Bus .

    您的解决方案必须能够支持自动重复检测 .

    有一篇很好的文章比较存储队列和服务总线:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted,您可能会发现后者更适合您的情况 .

相关问题