我有两个连接到Azure队列的消费者(不同的应用程序)。我可以ReceiveAndDelete
或PeekLock
消息,在消费期间我可以complete()
或abandon()
消息。参考:http://msdn.microsoft.com/en-us/library/azure/hh851750.aspx。
我确定要使用PeekLock
然后abandon()
消息,因为我希望在两个应用程序中都能收到这些消息。我想我将队列上的消息生存期设置为10秒作为删除机制。
但是,由于消息似乎在10秒后被删除,因此它们会在这10秒内一次又一次地在两个应用程序中发布。我应该创建一些自定义复制检测还是一般使用错误的方法?
答案 0 :(得分:2)
根据我的经验,当您使用PeeKLock时,您将需要几乎总是使用完整方法完成。放弃方法正在创造双重性,因为它从未标记为"完成"。
您是否考虑过使用服务总线主题/订阅模式,或者过滤器?如果我正确理解您的场景,那可能正是您所需要的。您可以使用不同的主题或过滤器向队列发送2条消息,指定它适用于哪个应用程序。
如果这有帮助,或者如果这与您的情况不符,请告诉我。
最诚挚的问候......