Я пытаюсь запланировать сообщения в служебной шине Azure, но несколько сообщений застревают в запланированной очереди и никогда не возвращаются в активную очередь даже после достижения ScheduledEnqueueTimeUtc.
Код для отправки запланированного BrokeredMessage очень нормальный:
var message = new BrokeredMessage(info);
message.Properties.Add("Action", "Bookmark");
message.ContentType = "Info";
message.ScheduledEnqueueTimeUtc = DateTime.UtcNow.AddMinutes(Int32.Parse(ConfigurationManager.AppSettings["Delay"]));
var serviceBusClient = QueueClient.CreateFromConnectionString(ConfigurationManager.AppSettings["ConnectionString"], ConfigurationManager.AppSettings["ServiceBusQueueName"]);
serviceBusClient.Send(message);
Из 20 000 сообщений, которые я отправил во время тестирования, только 6 сообщений зависали, причем в случайное время.
Ниже приведен снимок экрана в режиме отладки. Снимок экрана с недопустимым ExpiresAtUtc
Примечания: Первоначально я думал, что сообщения застревают из-за неправильного ExpiresAtUtc, но после некоторого чтения обнаружил, что при планировании нового сообщения его ExpiresAtUtc составляет 31.12.9999 11:59:59 PM strong> Также я обнаружил, что когда сообщения планируются путем клонирования сообщения из очереди, то ExpiresAtUtc для запланированного сообщения не будет 12/31/9999 11:59:59 PM, а будет его правильным временем ExpiresAtUtc, даже если оно запланировано очередь
ExpiresAtUtc
по умолчанию присвоено 9999 году. - person Mikhail Shilkov   schedule 14.09.2017ExpiresAtUtc
запланированного BrokeredMessage по умолчанию присваивается 9999 году. Во-вторых, в в этой статье мы можем найти:Message enquing time does not mean that the message will be sent at the same time.It will get enqueued, but the actual sending time depends on the queue's workload and its state.
действуют ли те 6 запланированных сообщений, которые не попали в очередь до сегодняшнего дня? - person Fei Han   schedule 14.09.2017