Недавно я создал простой сервис Mass Transit, который обрабатывает команды. Если я посылаю 3 команды одновременно, то первые 2 правильно обрабатываются, а третья помещается в очередь *_skipped
. Насколько я понимаю, команда должна быть помещена в пропущенную очередь только в том случае, если в конечной точке нет потребителя, который мог бы ее обработать, поэтому я не понимаю, почему следует пропустить третью команду. Что я могу сделать, чтобы продолжить расследование и решить проблему?
Это конфигурация для потребителя
services.AddMassTransit(x =>
{
x.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(cfg =>
{
var host = cfg.Host(_settings.RabbitMqConnectionString, "/", h => { });
cfg.UseInMemoryScheduler();
//cfg.UseMessageScheduler(new Uri("rabbitmq://localhost/quartz"));
cfg.UseExtensionsLogging(provider.GetRequiredService<ILoggerFactory>());
cfg.ReceiveEndpoint(host, CurriculumQueryHelper.EndpointName, e =>
{
e.Consumer<CurriculumQueryHelper>(provider);
});
cfg.ReceiveEndpoint(host, CurriculumCommandHelper.EndpointName, e =>
{
e.Consumer<CurriculumCommandHelper>(provider, config =>
{
//config.UseConcurrencyLimit(1);
});
});
}));
});