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

Jit*_*pta 5 jms amazon-sqs amazon-web-services

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

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

谢谢

Sha*_*shi 1

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

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

更新:

SQS 提供了 JMS 的实现。所以 AsyncMessageListener 绝对应该完成您正在寻找的工作。这个AsyncMessageListener示例应该对您有帮助。