6

我们将利用 Azure 服务总线队列来调度触发昂贵的数据库计算的消息。这些消息可以相当快地生成,并且在某些情况下可以紧密地生成相同的消息。在这种情况下,我们只想处理一次数据。

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

  1. 如果一条消息正在等待处理,并且即将创建一条相同的消息,请不要创建它。
  2. 如果之前处理过一条消息,并且即将创建一条相同的消息,请务必创建它。
  3. 如果当前正在处理一条消息,并且即将创建一条相同的消息,请务必创建它。

我找不到的是一种禁用“历史”重复检测但启用“等待”重复检测的方法 - 检测队列中等待的消息,而不是那些已经处理的消息。重复检测历史机制是否仅适用于已完成的消息,或者时间范围是否也与等待消息相关?

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

4

0 回答 0