目前,根据我对这些问题(here,and here)的理解,在AWS Messaging for Spring Boot中,必须将@SqsListener批注定义中的队列名称或队列url设置为Spring在启动时可以读取的静态字符串。您不能将其设置为变量或队列列表,以便可以定义一个方法并使该方法成为所有这些SQS队列的处理程序。
我的应用程序中有40多个队列。我想做的是将其中一些队列放入列表中,并提供给@SqsListener批注,这样我就可以针对这X个队列使用一种方法,并将另一组队列Y放入另一个方法的注释。但这似乎我无法做到。是对的吗?还有另一种方法吗?
我开始不喜欢spring-cloud-aws-messaging
maven包的实现,在方法上带有@SqsListener注释,该方法在特定队列上“侦听”并在出现新消息时调用该方法。尤其重要,因为这迫使我使用1.0的AWS Java SQS SDK,而不是能够使用2.0。我宁愿以某种方式自己在春季进行民意测验,但Idk如何做到这一点。如何在Spring Boot中轮询SQS队列列表?如果我可以将其配置为长时间轮询(例如,AWS的最大值为20秒),并且如果它找到一条消息,它将返回它并开始下一次轮询,那么我会很喜欢。这可能吗?