Вот теоретический вопрос:
Когда я создаю приложение с использованием очереди сообщений, мне понадобится несколько очередей, поддерживающих разные типы данных для разных целей. Предположим, у меня есть 20 очередей (например, одна для создания новых пользователей, одна для обработки новых заказов, одна для редактирования настроек пользователя и т. д.).
Я собираюсь развернуть это в Windows Azure, используя «минимум» 1 веб-роль и 1 рабочую роль.
Как правильно читать из всех этих 20 очередей? Это то, что я имел в виду, но у меня мало или совсем нет реального практического опыта в этом:
Создайте класс, который порождает 20 потоков в классе «основной» рабочей роли. Пусть каждый из этих потоков выполняет метод для опроса другой очереди и позволяет всем этим потокам спать между каждым опросом (конечно, с механизмом отсрочки, который увеличивает время ожидания).
Это приводит к 20 потокам (или 21?) и 20 очередям, которые активно опрашиваются, что приводит к большому количеству потерянных сообщений (каждый раз, когда вы опрашиваете пустую очередь, она оплачивается как сообщение).
Как решить эту проблему?