【问题标题】:Delay Queue for amount of time per session延迟队列每个会话的时间量
【发布时间】:2017-06-20 13:58:22
【问题描述】:

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

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

但是当实体在短时间内(例如 5 / 10 分钟)更改 10 次时,订阅者不需要收到垃圾邮件。

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

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

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

'如果客户端在此时间段内发送额外的消息,它会在单个批次中传输消息'

这听起来很完美。 通过这种方式,我可以在一个批次中收到所有“实体的更改”。并且可以构造一个单独的电子邮件来发送。

但我似乎在新的"Azure Service Bus NuGet" 中找不到这个选项了。

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

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

我知道这是一个非常广泛的问题,更多的是“信息需求”。所以用链接评论已经让我很开心了。

提前致谢 布莱希特

【问题讨论】:

  • 我没有使用 ASB 的延迟批处理属性或您引用的 nuget 包。我正在使用标准的nuget.org/packages/WindowsAzure.ServiceBus 并且 BatchFlushInterval 属性在那里可用,例如作为实例化消息传递工厂时的设置。

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


【解决方案1】:

不要认为Message SessionsBatchFlushInterval 是在这里采取的方法。您正在寻找的是缓冲消息以创建单个通知而不是多个通知。我会亲自使用来自 Azure 服务总线的 receiving a batch 并处理批处理以“追加”通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2013-09-27
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多