我遇到一个奇怪的问题。我有一个云服务A,它将消息放入服务总线队列中供其他云服务B读取。云服务B可以花费大约一秒来处理它需要做的事情,然后它将消息放回到云服务A的队列中。当云服务B这样做时,它使用ScheduledEnqueueTimeUtc来延迟大约1-10秒在消息上。Azure服务总线队列ScheduledEnqueueTimeUtc延迟
上周五蔚蓝的停电使这个应用程序完全失效。当我将它重新联机时,ScheduledEnqueueTimeUtc总是造成至少10秒的延迟。例如,我将来会生成1到10秒之间的日期时间。我将它设置为ScheduledEnqueueTimeUtc,并且将该时间作为属性发送给我要发送的消息,然后将该日期时间属性与消息的EnqueuedTimeUtc属性进行比较,当我将其返回到云服务A时。这两次应该很漂亮这是它直到上周五一直工作数月的方式。
因此,现在云服务B说它会在1秒内将此消息放入队列中。云服务A表示它没有进入队列12-14秒。将消息放入队列时,我使用异步方法。如果我不使用ScheduledEnqueueTimeUtc,则不会有任何延迟,当我在云服务A中查看它们时,时间匹配足够接近。但是,如果将来设置了ScheduledEnqueueTimeUtc甚至1秒,它似乎不会在队列中显示12 -14秒。
我现在正在通过使用quartz.net来安排消息而不是设置ScheduledEnqueueTimeUtc属性来解决此问题。但是这似乎很奇怪,这开始发生。
谢谢,我在文档中阅读过它。但我想这只是不如你所说的那么清楚,而且它刚刚开始发生的事实让我感到沮丧。我想我早晚会遇到这种情况。我需要在此应用程序中尽可能精确地进行计时,以使ScheduledEnqueueTimeUtc出现。谢谢! – 2013-03-01 18:02:44
'该属性导致消息不能立即传递'这是什么意思?将该邮件发送到Azure,但是不会将该邮件添加到队列中,直到达到该时间或者在该时间发送它的客户端应用程序中等待吗? – 2016-07-11 14:54:39