0

我有两个连接到 Azure 队列的消费者(不同的应用程序)。我可以ReceiveAndDeletePeekLock消息,在消费期间,我可以complete()abandon()消息。参考:http: //msdn.microsoft.com/en-us/library/azure/hh851750.aspx

我确定我想使用PeekLock然后abandon()是消息,因为我希望它们在两个应用程序中都被接收。我想我将队列上的消息生命周期设置为 10 秒作为删除机制。

但是,由于消息似乎在 10 秒后被删除,因此在这 10 秒内它们会一遍又一遍地在两个应用程序中发布。我应该创建一些自定义重复检测还是我使用了错误的方法?

4

1 回答 1

2

根据我的经验,当你使用 PeeKLock 时,你几乎总是需要使用 Complete Method 来完成。Abandon 方法正在创建重复,因为它从未标记为“完成”。

您是否考虑过使用服务总线主题/订阅模式或过滤器?如果我正确理解您的情况,它可能正是您所需要的。您可以使用不同的主题或过滤器将 2 条消息发送到队列,以指定它用于哪个应用程序。

http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/

如果这有帮助,或者这与您的情况不符,请告诉我。

最亲切的问候...

于 2014-10-30T22:33:06.717 回答