Наш код - это просто копипаст из какого-то онлайн-руководства по получению сообщений из очереди хранилища Azure.
public int? GetQueueMessageCount(CloudQueue queue, TextWriter textWriter)
{
int? messageCount;
try
{
queue.FetchAttributes();
// Retrieve the cached approximate message count.
messageCount = queue.ApproximateMessageCount;
}
catch (Exception exception)
{
LogHelper.LogInfo(logger, textWriter, $"GetQueueMessageCount failed for {queue.Name}." + exception);
throw;
}
return messageCount;
}
Однако мы обнаружили, что случайным образом некоторые сообщения могут застревать в очереди, и наш триггер очереди так и не сработал.
public static void ProcessUnitsForCacheItem(
[QueueTrigger(QueueClient.RefreshUnitsQueue)] string projectUnitsMessage, TextWriter textWriter)
Когда я открываю свою очередь с помощью проводника хранилища, я вижу, что проводник не отображает никаких сообщений, а просто отображает текст состояния «отображается 0 из 199 сообщений». Таким образом, проводник хранилища должен каким-то образом знать, что эти сообщения неправильные (просрочены или что-то в этом роде).
Есть ли какой-то статус, который я могу получить, чтобы увидеть статус сообщения, или кто-нибудь знает, как проводник хранилища решает показать сообщение или нет?