我正在开发一个ASP.NET Core微服务应用程序,我正在利用Steeltoe包来集成RabbitMQ进行消息传递。我试图使用Steeltoe包提供的MaxAttempts属性来实现最大尝试次数的重试机制,但我在实现所需行为方面遇到了困难。以下是我的appsettings.json配置的相关部分:
"Spring": {
"RabbitMq": {
"Addresses": "*",
"Template": {
"Retry": {
"Enabled": true,
"MaxAttempts": 3
}
}
}
}
字符串
以下是我正在使用的steeltoe库:
using Steeltoe.Messaging.RabbitMQ.Attributes;
using Steeltoe.Messaging.RabbitMQ.Core;
型
我还在Program.cs中配置了RabbitMQ服务,如下所示:
builder.Services.AddRabbitServices(true);
builder.Services.AddRabbitAdmin();
builder.Services.AddRabbitTemplate();
型
在我的应用程序中,我有一个RabbitMQ消息侦听器方法来处理消息。我想使用MaxAttempts配置来限制此侦听器的重试次数,但尽管在配置中将值设置为3,侦听器仍会无限期地重试。
下面是我的消息侦听器方法的简化版本:
[RabbitListener(Constants.RECEIVE_AND_CONVERT_QUEUE)]
public void ListenForAMessage(ContentMessage msg)
{
// Message processing
// ...
}
型
如果您能提供任何关于如何使用Steeltoe软件包的配置来正确限制侦听器重试次数的指导或见解,我将不胜感激。我的设置或代码中是否遗漏了某些内容,导致重试行为无法被限制在指定的尝试次数?
1条答案
按热度按时间zrfyljdw1#
appsettings.json中的配置是正确的。听起来RabbitOptions类可能没有配置。要做到这一点,你可以添加以下内容:
字符串
如果这没有帮助,你能试着做一个最小的项目,我可以看看。