使用SQS提供程序轮询JMS MessageListener的间隔

时间:2015-04-16 06:50:13

标签: amazon-web-services jms amazon-sqs

我正在使用amazon sqs队列来异步使用消息。我已经开始使用amazon sqs JMS api来消费这些消息。所以我已经实现了MessageListener并在消息到达onMessage方法后继续我的工作。由于亚马逊sqs是根据对服务器的请求收费的,我想将轮询间隔限制为1分钟,或者可能更多,因为我不需要立即消息。

无论如何,我可以在JMS中配置轮询间隔,或者我应该使用amazon sqs API自行处理。

由于

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以选择同步接收呼叫,即consumer.receive(timeout)而不是消息监听器。您只能在需要时拨打接听电话。

我也想知道一点,因为只有当队列中有消息时,SQS消息传递提供者才应该调用onMessage方法。这里不应该涉及民意调查。

<强>更新

SQS为JMS提供了一个实现。因此,AsyncMessageListener绝对应该完成您正在寻找的工作。这个AsyncMessageListener示例可以为您提供帮助。

答案 1 :(得分:0)

看看我在回顾这个主题时写的博客文章:http://thedulinreport.com/2015/05/09/guaranteeing-delivery-of-messages-with-aws-sqs/

博客文章解释了如何使用AWS SDK实现异步侦听器,并提供指向github上示例的链接。