Azure存储队列中的重复检测

时间:2013-01-11 14:36:13

标签: c# azure azure-storage

我想知道是否有任何优雅的方法可以确保Queue始终拥有不同的消息(与重复检测窗口或任何时间段无关)?

我知道服务总线队列提供了会话概念(正如我所提到的,服务总线队列的重复检测对我来说无关,因为它取决于时间段),这可以达到我的目的,但我不希望我的组件依赖在另一个Azure服务上,仅仅是因为这个功能。

谢谢,

2 个答案:

答案 0 :(得分:12)

这是不可能做到的。

没有任何机制可以查询存储队列,并查明具有相同内容的消息是否已存在或之前存在。您可以尝试使用某个存储表来实现自己的逻辑,但这不可靠 - 因为表中的条目可能会成功,然后进入队列可能会失败 - 现在您可能在表中有错误的数据。 / p>

您的代码应始终假定它可以检索包含已处理的相同数据的消息。这是因为当正在处理它们的工作人员崩溃或花费太长时间时,消息可以返回到队列中。

答案 1 :(得分:0)

您可以使用服务总线。类似于Azure存储队列,但它允许256Kb-1MB的消息并进行重复检测