Асинхронные сообщения в очереди Azure - PullRequest
0 голосов
/ 03 августа 2011

Мы рассматриваем отдельные очереди для:

  1. Запрос (RequestQueue)
  2. Ответ (ResponseQueue)

Сценарий:

  1. Рабочая роль помещает сообщение в RequestQueue, например, GetOrders
  2. Сторонняя сторона будет контролировать RequestQueue.Если они увидят запрос GetOrders, они получат getMessage, обработают их и поместят ответ в ResponseQueue.

Вопрос: Если я поставлюMessage в RequestQueue, я хочу получить результаты обратно из ResponseQueue.Есть ли простой способ добиться этого и как?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 июля 2015

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

Предостережения:

  1. Рабочий сервис имеет доступ к обеим очередям
  2. Каждый элемент очереди содержит сериализованный внешний ключ для идентификации себя.
0 голосов
/ 03 августа 2011

Нет, это невозможно. Если вы помещаете сообщение в очередь, вы должны извлечь сообщение из той же очереди (оно не будет волшебным образом появляться ни в какой другой очереди). Возможно, если вы объяснили больше, почему вы думаете, что вам нужны две отдельные очереди для push / pop, то это может быть более обширный ответ и предложение.

РЕДАКТИРОВАТЬ: Возможно, я неправильно понял ваше намерение. Я думаю, я не понимаю сейчас вопрос - не могли бы вы помочь уточнить. Вы, кажется, спрашиваете, как поместить сообщение в одну очередь, подтвердить его, поместив другое сообщение в другую очередь, и попросить кого-нибудь прочитать подтверждение из второй очереди? Какой вопрос здесь? Я должен отметить, что вы не захотите, чтобы какой-либо сторонний пользователь выполнял чтение непосредственно из очереди Windows Azure, поскольку для этого потребовалось бы предоставить им общий ключ хранилища (не начальный). Возможно, вы ищете, как третьи лица могут читать из очереди?

РЕДАКТИРОВАТЬ 2: Звучит так, как будто вы хотите использовать сообщения от третьих лиц. Очереди Windows Azure, вероятно, не подходят, как я уже упоминал, из соображений безопасности (вам необходимо предоставить общий ключ). Вместо этого вы можете либо наложить службу WCF на очередь (используя очереди через прокси-сервер), либо использовать очередь из служебной шины - это позволит вам иметь отдельные учетные данные. Использование возможностей служебной шины может быть правильным выбором с точки зрения простоты. Взгляните здесь для демонстраций.

...