Mass Transit пропускает команды при небольшой нагрузке - PullRequest
1 голос
/ 17 марта 2019

Недавно я создал простой сервис 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);
                    });
                });
            }));
        });

1 Ответ

1 голос
/ 18 марта 2019

Оказывается, что другой сервис зарегистрировал конечную точку с тем же адресом, на который я отправлял команды, и это вызывало пропуск команд.

...