MassTransit没有创建_error队列

时间:2017-07-12 20:08:42

标签: c# asp.net rabbitmq masstransit

我有两个消费者:

public class SendEmailConsumer : ConsumerBase, IConsumer<ISendEmail>
    {    
        public Task Consume(ConsumeContext<ISendEmail> context)
        {
            throw new Exception("aaa");
        }
    }




public class IntegrateNewCostCenterConsumer: ConsumerBase, IConsumer<IIntegrateCostCenter>
        {    
            public Task Consume(ConsumeContext<ISendEmail> context)
            {
                throw new Exception("aaa");
            }
        }

两者具有相同的配置:

cfg.ReceiveEndpoint(host, MessageHandlerConstants.IntegrateCostCenter, e =>
            {
                // doc http://masstransit-project.com/MassTransit/advanced/middleware/circuit-breaker.html
                e.UseCircuitBreaker(cb =>
                {
                    cb.TripThreshold = 15;
                    cb.ResetInterval = TimeSpan.FromMinutes(5);
                    cb.TrackingPeriod = TimeSpan.FromMinutes(1);
                    cb.ActiveThreshold = 10;
                });

                e.UseRetry(r => r.Interval(5, new TimeSpan(0, 0, 10)));
                e.Consumer<IntegrateNewCostCenterConsumer>();
            });


cfg.ReceiveEndpoint(host, MessageHandlerConstants.SendEmail, e =>
            {
                // doc http://masstransit-project.com/MassTransit/advanced/middleware/circuit-breaker.html
                e.UseCircuitBreaker(cb =>
                {
                    cb.TripThreshold = 15;
                    cb.ResetInterval = TimeSpan.FromMinutes(5);
                    cb.TrackingPeriod = TimeSpan.FromMinutes(1);
                    cb.ActiveThreshold = 10;
                });

                e.UseRetry(r => r.Interval(10, new TimeSpan(0, 0, 60)));
                e.Consumer<SendEmailConsumer>();
            });

问题是只有IntegrateCostCenter有异常创建的_error队列才能成功。两者都正常处理。我做错了什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

只有在所有尝试都失败时才会创建错误队列。