Для тестирования запроса/ответа саги с помощью masstransit я создал консольное приложение для запуска саги, отправив сообщение на шине (RabbitMQ).Почему мой почтовый автобус не создает временную очередь?
В соответствии с documentation консольное приложение не должно иметь никаких конечных точек, определенных для получения ответа.
создать шину с помощью следующего кода:
context.Bus = Bus.Factory.CreateUsingRabbitMq(x =>
{
IRabbitMqHost host = x.Host(new Uri(ConfigurationManager.AppSettings["RabbitMQHost"]), h =>
{
h.Username("guest");
h.Password("guest");
});
});
При выполнении приведенного выше кода, я не вижу никаких обменов или временную очередь создается.
Отправка запроса приведет к выполнению саги, но ответы никогда не вернутся к исходному отправителю, и будет выведено исключение таймаута.
Отправка запроса:
public async Task Test(TestContext context)
{
var triggerRequestMessage = JsonConvert.DeserializeObject<TriggerRequestMessage>Messages.MFAMessages.ValidMessage);
var client = CreateRequestClient(context);
var response = await client.Request(triggerRequestMessage);
Logger.Log("Result: PublishMFAMessage");
}
IRequestClient<TriggerRequestMessage, ResponseMessage> CreateRequestClient(TestContext context)
{
var serviceAddress = new Uri("rabbitmq://localhost/MTTest/SAGAS_AUTHBOLTON");
var client = context.Bus.CreateRequestClient<TriggerRequestMessage, ResponseMessage>(serviceAddress, TimeSpan.FromSeconds(10));
return client;
}
Что я делаю неправильно? Почему временное не создается?
Вы связываете ли вы потребителей? Ничего не происходит, пока кто-то не прислушивается к сообщению. – Travis
Привет @travis tnx за ваш ответ. В соответствии с документацией, которая не нужна: если вам нужно отправлять или публиковать сообщения, ** не создавать конечные точки приема **. Шина ** автоматически создаст временную очередь ** для шины, которая может использоваться для публикации событий, а также для отправки команд и ведения запросов/ответов. Временное создание не создается. –
Эта услуга может не связывать пользователей, но вам нужно что-то слушать. Так слушает другое служение? Это слушатель, который связывает все вещи вместе. – Travis