在我的Spring-Boot 2应用程序中,有一个SqsListener
:
@SqsListener(value = "${sqs.message.queue}", deletionPolicy = ON_SUCCESS)
public void myMessageListener(MyMessage myMessage) throws MyMessageServiceException {
myMessageService.processMessage(myMessage);
}
MyMessageService#processMessage
在某些情况下会引发异常。完成后,该消息将按照deletionPolicy
的命令返回SQS,以由上述侦听器再次读取。我希望在处理消息的尝试失败之间有某种阈值(例如600秒)。
是否有一种开箱即用的解决方案来设置这种阈值而无需创建一些断路器逻辑?
最佳答案
我提出的唯一“无代码”解决方案是在Amazon SQS管理控制台中的SQS队列设置中更改Default visibility timeout
属性。