如何仅在等待消息时使用Azure Service Bus Queue Duplicate Detection?

Cod*_*rue 6 azure azure-servicebus-queues

我们将利用Azure Service Bus Queue来分派触发昂贵的数据库计算的消息.这些消息可以相当快速地生成,并且存在可以在一起生成相同消息的实例.在这种情况下,我们只想处理一次数据.

所以我们打算利用重复检测,但是我无法从文档或之前的问题中收集到一些细微差别.参数是:

  1. 如果正在等待处理消息,并且即将创建相同的消息,请不要创建它.
  2. 如果消息是先前处理的,并且相同的消息将要被创建的,DO创建它.
  3. 如果当前正在处理的消息,和相同的消息将要被创建的,DO创建它.

我无法找到的是一种禁用"历史"重复检测但启用"等待"重复检测的方法 - 检测队列中等待的消息,但不检测已经处理过的消息.重复检测历史记录机制是仅对已完成的消息有效还是与等待相互消息相关的时间范围?

对于#3,我正在考虑通过在处理任何消息时添加5分钟的延迟来解决这个问题,这样如果在处理任何消息时创建一个消息,则有足够的时间来完成处理.