这个问题的解决方法是手动在Configure方法中添加一个单独的ConfigureBatchEndpoint,而不是使用ConsumerDefinition中的UseMessageRetry。这可以通过以下代码实现:
protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator consumerConfigurator)
{
endpointConfigurator.ConfigureBatchEndpoint(x =>
{
x.UseMessageRetry(r => r.Interval(2, 100));
});
base.ConfigureConsumer(endpointConfigurator, consumerConfigurator);
}
这将在BatchConsumer的Configure方法中添加一个额外的选项卡,以在配置批处理端点时添加UseMessageRetry。但是,请注意不要同时在ConsumerDefinition中使用UseMessageRetry和在ConfigureConsumer中配置ConfigureBatchEndpoint,否则可能会导致其他错误和异常。