Есть ли способ ждать получения сообщения rabbitmq? - PullRequest
0 голосов
/ 23 января 2019

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

Мой проект API и рабочий проект разделены, и шина rabbitmq является единственным посредником между ними.

РЕДАКТИРОВАТЬ : Это текущий сценарий:

  1. Клиент отправляет запрос в веб-API для запроса, назовем его «ДАННЫЕ»
  2. Веб-API публикует Сообщение-A через rabbitmq
  3. Отдельный сервисный проект обрабатывает опубликованное Сообщение-A, выполняет некоторую работу и публикует новое Сообщение-B, содержащее результат той работы, которую мы назвали «ДАННЫЕ»
  4. Вот проблема: мой контроллер веб-API должен возвращать результаты, содержащиеся в Message-B, поэтому действие контроллера должно ждать этого сообщения, прежде чем вернуться к клиенту

1 Ответ

0 голосов
/ 24 января 2019

Вам нужно использовать TaskCompletionSource<T>.

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

Затем дождитесь задания источника завершения задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...