2014-01-19 5 views
7

У меня есть очередь в хранилище Azure, названная, например, «сообщениями». И каждые 1 час некоторые службы нажимают на эту очередь некоторое количество сообщений, которые должны обновлять данные. Но в некоторых случаях я также нажимаю на это сообщение очереди из другого места, и я хочу, чтобы это сообщение было немедленно отправлено, и я не могу установить приоритет для этого сообщения.Приоритет приоритета очереди Azure

Какое оптимальное решение этой проблемы? Могу ли я использовать две разные очереди («сообщения» и «приоритеты сообщений»), или это плохой подход?

+0

С очередями Windows Azure вы не можете установить сообщение о приоритете, так что единственным вариантом будет использование двух отдельных очередей. Могу ли я предложить вам взглянуть на очереди очереди обслуживания Windows Azure? Я не использовал его лично, но я считаю, что он более функциональный, чем Windows Azure Queues. –

+0

Я также не использовал очереди служебной шины Windows Azure, но попытаюсь расследовать это. – bogdan

+0

https://msdn.microsoft.com/en-us/library/dn589794.aspx?f=255&MSPPError=-2147217396 – vladimir77

ответ

7

Правильный подход заключается в использовании нескольких очередей - «нормального приоритета» и очереди с высоким приоритетом. Мы реализовали несколько потоков чтения в очереди в одной рабочей роли - каждый поток сначала проверяет очередь с высоким приоритетом и, если ее пустая, смотрит в обычную очередь. Таким образом, сообщения с высоким приоритетом будут обрабатываться первым доступным потоком (почти сразу), и тот же код запускается независимо от того, откуда происходят сообщения. Это также экономит время, когда читатель постоянно смотрит в одной очереди и должен быть отброшен, потому что есть редко сообщения.

+0

Думайте, что это хороший способ. Благодарю. – bogdan

+1

Не существует ли голода с этим подходом? При наличии достаточно сообщений с высоким приоритетом обычная очередь сообщений никогда не будет обслуживаться? – urig

+0

Хорошая точка, но тогда «высокий приоритет» становится новым «нормальным», и у вас есть внешний набор проблем, вызывающих многие сообщения с высоким приоритетом, - это основная деловая проблема или паника, которые необходимо решить. Наша система регистрирует данные для отслеживания транспортных средств и «высокий приоритет» для обнаружения сбоев (который отправляет данные телеметрии в службы экстренной помощи). В этом случае ** нет способа **, что высокий приоритет будет превышать нормальный, если не будет ошибки или мир подходит к концу. –

Смежные вопросы