ServiceBus消息传递时间靠谱吗?

ServiceBus message delivery time reliable?

我正在使用 Azure ServiceBus 创建一个事件系统,我发现事件通常会在我将它们设置为 运行 的预定时间可靠地命中 - 所以如果事件 'pop' 应该运行 在 12:30pm 通常会在那时交付给我的收件人。

我想知道是否可以保证事件始终在预定时间内触发,或者是否有更多的建议时间并且系统可能会堵塞和积压导致形成更长的队列?

消息(使用服务总线处理)和事件之间有很多区别,如您在文章 Choose between Azure messaging services - Event Grid, Event Hubs, and Service Bus.

An event is a lightweight notification of a condition or a state change. The publisher of the event has no expectation about how the event is handled. The consumer of the event decides what to do with the notification. Events can be discrete units or part of a series.

[...]

A message is raw data produced by a service to be consumed or stored elsewhere. The message contains the data that triggered the message pipeline.

听起来您需要一种可靠的方法来让计时器触发器在特定时间执行。 Service Bus 不是正确的服务,因为“消息排队时间并不意味着消息将在那时发送。它会排队,但实际发送时间取决于队列的工作量及其状态。” (参见 BrokeredMessage.ScheduledEnqueueTimeUtc Property)。

为了以可靠的方式处理触发,您可以使用像 Logic Apps (if you want to create it low-code/no-code) or Azure Functions 这样的服务(对于带有代码的无服务器解决方案)。

如果您实际上是在寻找 事件,请考虑 Event Grid