Очереди Azure и темы

Я разрабатываю веб-сайт для развертывания в Azure. Прямо сейчас я использую очередь Azure для отправки электронных писем пользователям. Я проверяю очередь на получение сообщений каждые 60 секунд, засыпая текущий поток.

Моя проблема в том, что я не хочу ждать потока и ждать 60 секунд, вместо этого я хочу активировать функцию отправки сообщения, когда очередь действительно получает сообщение. Я нашел механизм тем служебной шины /Subscriptions, но я хочу знать, могу ли я реализовать тот же механизм подписки с очередями Azure (без использования разделов/подписок). Это возможно? Может ли очередь Azure прослушивать что-либо, чтобы она могла выполняться только при получении сообщения в очередь. Я, конечно, не хочу спать с Нитью.

Спасибо.


person Thilok Gunawardena    schedule 17.06.2013    source источник


Ответы (1)


Вопрос о очередях Azure, поддерживающих длительный опрос, уже задавался ранее, поэтому я пометил его как дубликат.

Относительно спящего режима: не знаю, почему вы определенно не хотите усыплять поток для прослушивания очереди. Это может быть отдельный поток, что означает, что вы не связываете другие процессы. И... пока в очереди есть сообщения, вам не нужно спать между вызовами GetMessage() — просто продолжайте читать, пока очередь не опустеет.

Также: зачем ждать 60 секунд? Начните с 1 секунды, может быть, экспоненциально уменьшите до, скажем, 16 секунд, а затем остановитесь на этом? Едва ли стоит что-либо проверять каждые несколько секунд (копейки за 100 тысяч транзакций). Это очень распространенный шаблон, даже если запущено несколько экземпляров ролей.

person David Makogon    schedule 17.06.2013