【问题标题】:Behavior of Azure Service Bus Queue ScheduledEnqueueTimeUtc when sender stops running发件人停止运行时 Azure 服务总线队列 ScheduledEnqueueTimeUtc 的行为
【发布时间】:2023-03-26 11:58:01
【问题描述】:

我们有一个用例,我们需要安排将作为消息从 Azure Web api 服务发送到 Azure 服务总线队列的作业。由于我们需要在以后安排它,一种解决方案是使用预定交付ScheduledEnqueueTimeUtc。 我的理解是消息只有在指定的时间到期后才会排队。我担心的是如果 Web API 同时崩溃或升级会发生什么。

1.消息未入队会丢失吗?

2.这个消息在中间时间存放在哪里?

第二种解决方案是使用visibilityTimeOut 的存储队列,其中消息已入队且不受Web API 影响。

  1. 从稳定性和可扩展性的角度来看,哪个是更好的选择?

【问题讨论】:

    标签: azure azure-webjobs azure-servicebus-queues azure-api-apps azure-storage-queues


    【解决方案1】:

    消息被发送到服务总线,该服务总线根据计划排入队列(可接收)。所以,回答你的问题

    1. 没有
    2. 在队列中,只是无法接收
    3. visibilityTimeOut 用于存储队列。请参考comparison doc 做出决定。

    请注意,虽然您无法接收预定消息,但您可以peek 它们。

    【讨论】:

    • 感谢@pramodvalavala-msft。所以基本上行为明智的 visibilityTimeout 和 ScheduledEnqueueTimeUtc 没有区别。一个用于存储队列,另一个用于服务总线?
    • 是的。那是正确的。可见性超时用于调度(入队)和锁(出队)。
    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2012-08-28
    • 1970-01-01
    相关资源
    最近更新 更多