发送方停止运行时Azure Service Bus队列ScheduledQueueTimeUTC的行为

发送方停止运行时Azure Service Bus队列ScheduledQueueTimeUTC的行为,azure,azure-webjobs,azure-servicebus-queues,azure-api-apps,azure-storage-queues,Azure,Azure Webjobs,Azure Servicebus Queues,Azure Api Apps,Azure Storage Queues,我们有一个用例,需要调度作业,这些作业将作为消息从Azure web api服务发送到Azure服务总线队列。由于我们需要在稍后的时间点安排,一个解决方案是使用计划交付scheduledQueueTimeUTC。 我的理解是,消息只有在指定的时间过期后才会进入队列。我关心的是如果Web API崩溃或同时进行升级会发生什么情况 1.消息是否会因其尚未排队而丢失 2.此消息在中间时间存储在何处 第二种解决方案是使用存储队列的visibilityTimeOut,在该队列中,消息被排队,并且不会受到We

我们有一个用例,需要调度作业,这些作业将作为消息从Azure web api服务发送到Azure服务总线队列。由于我们需要在稍后的时间点安排,一个解决方案是使用计划交付
scheduledQueueTimeUTC
。 我的理解是,消息只有在指定的时间过期后才会进入队列。我关心的是如果Web API崩溃或同时进行升级会发生什么情况

1.消息是否会因其尚未排队而丢失

2.此消息在中间时间存储在何处

第二种解决方案是使用存储队列的
visibilityTimeOut
,在该队列中,消息被排队,并且不会受到Web API的影响

  • 从稳定性和可伸缩性的角度来看,哪一个是更好的选择

  • 消息被发送到服务总线,服务总线根据时间表排队(可接收)。那么,回答你的问题

  • 没有
  • 在队列中,只是无法接收
  • visibilityTimeOut
    用于存储队列。请参考决策表

  • 请注意,虽然您无法接收预定的邮件,但您可以接收它们。

    谢谢@pramodvalavala msft。因此,基本上行为方面的visibilityTimeout和ScheduledEnqueueTimeUtc没有区别。一个用于存储队列,另一个用于服务总线?是的。这是正确的。可见性超时用于调度(排队时)和锁定(出列时)。