我从 Azure 存储队列收到重复消息。我确信我的函数仅执行一次,因为我在同一函数中将消息记录在数据库中。单击按钮后,我看到消息在存储队列中排队,并在一秒钟内出队(因此,这并不是有 2 条相同的消息排队)。
对此有什么想法吗?提前致谢!
P.S - 请注意,它不是 Azure 服务总线,我可以将属性 RequiresDuplicateDetection 设置为 True 来解决此问题。
最佳答案
目前,azure 存储队列不支持重复检测。
没有任何机制可以查询存储队列并查明具有相同内容的消息是否已经存在或以前存在。您可以尝试使用某些存储表来实现自己的逻辑,但这并不可靠 - 因为进入表可能会成功,然后进入队列可能会失败 - 现在表中可能会有错误的数据。
您的代码应始终假设它可以检索包含已处理的相同数据的消息。这是因为当处理消息的工作线程崩溃或花费太长时间时,消息可能会返回队列。
由于存储队列不支持重复检测,您可以给您的voice反馈。
更多详情可以引用这个article .
关于azure - 从 Azure 存储队列获取重复消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63556185/