gpt4 book ai didi

c# - 使用 Azure 服务总线队列和 BrokeredMessage.ScheduledEnqueueTimeUtc 续订订阅

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:02 25 4
gpt4 key购买 nike

我有一个订阅模型,想要执行与续订相关的逻辑,例如开具新发票、发送电子邮件等。例如,用户今天购买了订阅,并且续订是在一年后。我最近一直在使用 Azure 队列,并且认为它可以申请这样的更新。

对于此类长期计划消息,是否可以通过使用 BrokeredMessage.ScheduledEnqueueTimeUtc ( http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.scheduledenqueuetimeutc.aspx ) 推送消息来使用 Azure 队列?

我曾短期使用它,例如在 1 分钟内发送通知,效果很好。

这样,我什至可以让多个进程监听队列,并确保只有一个进程执行更新逻辑。这将解决许多与锁定相关的问题,因为这是通过租赁和相关功能内置的 Azure 队列。

最佳答案

是的,您可以将其用于长期调度,调度消息与普通消息具有相同的保证。但有几点您需要注意:

  • ScheduledEnqueueTimeUtc 是消息在队列上可用(数百毫秒内)但不需要传递的时间,这取决于队列的负载和状态。因此,它适合业务流程,但不适用于时间敏感(毫秒)的使用。对于您的情况来说这不是问题,除非您的订阅取消确实对时间很敏感。
  • 它会影响您的存储配额(当前配额并不是真正的问题,但如果您考虑几年,这可能是一个问题)
  • 据我所知,您无法在 ScheduledEnqueueTimeUtc 之前访问预定消息,它们是不可见的。

Extremely awesome source of informations on azure messaging

从技术角度来看,这很好,但就你的情况而言,如果你考虑多年,我还会考虑其他潜在问题:

  • 消息版本控制
  • 当您想将 Azure 更改为其他内容(AWS?)时会发生什么
  • 如果您决定明年将 Azure 服务总线更改为 NServiceBus,该怎么办

关于c# - 使用 Azure 服务总线队列和 BrokeredMessage.ScheduledEnqueueTimeUtc 续订订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com