有没有一种方法可以将SQS队列动态分配给@SqsListener方法实现,而不是必须是静态的?

时间:2020-02-07 17:54:43

标签: java amazon-web-services spring-boot amazon-sqs polling

目前,根据我对这些问题(hereand 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秒),并且如果它找到一条消息,它将返回它并开始下一次轮询,那么我会很喜欢。这可能吗?

0 个答案:

没有答案