答案 0 :(得分:0)
由于上述设置,天蓝色的webjob功能会忽略任何消息ID在一定时间内与先前消息相似的消息。
Azure Service Bus重复检测基于在定义的时间窗口内的消息ID。是Azure Service Bus代理进行重复数据删除,而不是Azure Webjob / Function。重复数据删除的邮件永远不会通过代理点。
如果邮件已删除重复邮件,则很明显它是重复邮件。如果您不满意,建议您更改使用方逻辑以实现幂等,并停止依赖Service Bus为您删除消息重复项,或者更改生成消息ID的方式。这个想法是创建message ID based on the message payload。
答案 1 :(得分:0)
启用重复检测有助于跟踪在指定时间段内发送到队列或主题中的所有消息的应用程序控制的MessageId。如果发送的任何新消息都带有在时间窗口内已记录的MessageId,则该消息将被报告为已接受(发送操作成功),但是新发送的消息将立即被忽略并丢弃。除MessageId之外,不考虑消息的其他部分。 (其中一个回复引用的博客说消息内容不能重复,这是不正确的。)
重复检测时间历史记录的默认值现在为30秒,该值的范围可以在20秒到7天之间。
或者,您可以使用Serverless360之类的工具,这里将提供重新生成messageid的选项。
请参阅此blog以获取更多详细信息