延迟队列每个会话的时间

时间:2017-06-20 13:58:22

标签: asp.net asp.net-core .net-core azureservicebus azure-servicebus-queues

我想创建一个“互相附加”邮件的系统。

情况:每次更改实体时,我都希望向该实体的订阅者发送邮件。

但是当实体在很短的时间内(例如5/10分钟)更改10次时,订阅者不需要通过电子邮件发送垃圾邮件。

所以我想创建一个'队列'。更准确地说,我正在考虑使用 Azure Servicebus

搜索了一些文档后。我发现了两个有趣的属性。

  • SessionId =>将是Id
  • 的实体
  • BatchFlushInterval(客户端批处理)

'如果客户端在此期间发送其他消息,则会以单个批次'

发送消息

这听起来很完美。 通过这种方式,我在一个批次中收到了所有“实体的变化”。并且可以构建一封要发送的电子邮件。

但我似乎不再在新"Azure Service Bus NuGet"中找到此选项。

现在我搜索了替代品,我觉得这不是一种“正常”的做法。

有人在这个领域有经验吗? 我想避免使用cron工作。但如果这是最好的解决方案,请告诉我。

我知道这是一个非常广泛的问题,更多的是“需要信息”。因此,使用链接进行评论已经让我感到非常高兴。

提前致谢 布莱希特

1 个答案:

答案 0 :(得分:1)

不要认为Message SessionsBatchFlushInterval是采取此方法的方法。您正在寻找的是缓冲消息以创建单个通知而不是多个通知。我亲自与Azure Service Bus中的receiving a batch一起使用,并将批处理到"追加"通知。