I am encountering an odd problem. I have a cloud service A that puts messages into a service bus queue for another cloud service B to read. Cloud service B can take about a second to process what it needs to do, then it puts a message back into a queue for cloud service A. When cloud service B does this it uses the ScheduledEnqueueTimeUtc to put a delay of around 1 - 10 seconds on the message.
Last Friday the azure outage brought this application down completely. When I brought it back online, ScheduledEnqueueTimeUtc is always causing a delay of at least 10 seconds. For instance, I generate a datetime that is between 1 and 10 seconds in the future. I set that as the ScheduledEnqueueTimeUtc and I also put that time as a property on the message I am sending, I compare that datetime property to the EnqueuedTimeUtc property of the message when I receive it back in cloud service A. These 2 times should be pretty close together, and that is the way it has been working for months up until last Friday.
So now cloud service B is saying it put this message into the queue in 1 second. Cloud Service A says it didn't get into the queue for 12-14 seconds. I am using async methods when putting messages into queues. There is no delay if I do not use ScheduledEnqueueTimeUtc, the times match up close enough when I look at them back in cloud service A. But if I set ScheduledEnqueueTimeUtc even 1 second in the future it seems to not show up in the queue for 12-14 seconds.
I am working around this now by using quartz.net to schedule messages instead of setting the ScheduledEnqueueTimeUtc property. But it just seems really odd that this started happening.