我有两个消费者:
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队列才能成功。两者都正常处理。我做错了什么?
答案 0 :(得分:0)
只有在所有尝试都失败时才会创建错误队列。