У меня есть распределенное приложение, которое разделяет нагрузки с очередями службы хранилища Azure. Чтобы убедиться, что все работает хорошо, я написал небольшое приложение, которое запускается каждые 10 минут и проверяет, сколько элементов находится в очереди. Если число превышает пороговое значение, отправьте мне уведомление.
Вот как я бегаю по всем очередям:
Dictionary<string, int> dic = new Dictionary<string, int>();
foreach (CloudQueue queue in QueuesToMonitor)
{
queue.FetchAttributes();
dic.Add(queue.Name, queue.ApproximateMessageCount.HasValue ? queue.ApproximateMessageCount.Value : -1);
}
Этот код работает нормально, но он также считает скрытые сообщения. Я хочу исключить эти сообщения из подсчета (потому что эта задача не готова к выполнению).
Например, я проверил одну из своих очередей и получил ответ, что в очереди находится 579 элементов. Но на самом деле там нет видимых элементов. Я проверяю это с помощью обозревателя хранилища Azure:
Как я могу подсчитать только видимые элементы в очереди?