【发布时间】:2020-07-03 10:45:21
【问题描述】:
我想知道我是不是做错了什么,我预计MassTransit 会自动在EndpointConvention 中注册ReceiveEndpoints。
示例代码:
services.AddMassTransit(x =>
{
x.AddServiceBusMessageScheduler();
x.AddConsumersFromNamespaceContaining<MyNamespace.MyRequestConsumer>();
x.UsingAzureServiceBus((context, cfg) =>
{
// Load the connection string from the configuration.
cfg.Host(context.GetRequiredService<IConfiguration>().GetValue<string>("ServiceBus:ConnectionString"));
cfg.UseServiceBusMessageScheduler();
// Without this line I'm getting an error complaining about no endpoint convention for x could be found.
EndpointConvention.Map<MyRequest>(new Uri("queue:queue-name"));
cfg.ReceiveEndpoint("queue-name", e =>
{
e.MaxConcurrentCalls = 1;
e.ConfigureConsumer<MyRequestConsumer>(context);
});
cfg.ConfigureEndpoints(context);
});
});
我认为这条线 EndpointConvention.Map<MyRequest>(new Uri("queue:queue-name")); 在不指定队列名称的情况下允许发送到总线是不必要的,还是我遗漏了什么?
await bus.Send<MyRequest>(new { ...});
【问题讨论】:
标签: masstransit