我正在使用amazon sqs队列来异步使用消息。我已经开始使用amazon sqs JMS api来消费这些消息。所以我已经实现了MessageListener并在消息到达onMessage方法后继续我的工作。由于亚马逊sqs是根据对服务器的请求收费的,我想将轮询间隔限制为1分钟,或者可能更多,因为我不需要立即消息。
无论如何,我可以在JMS中配置轮询间隔,或者我应该使用amazon sqs API自行处理。
由于
答案 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上示例的链接。