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

4

我正在使用Amazon SQS队列异步消费消息。我使用了Amazon SQS JMS API开始消费消息。因此,我实现了MessageListener,在onMessage方法中收到消息时进行处理。由于Amazon SQS的收费是基于向服务器发出的请求次数计算的,所以我希望将轮询间隔限制为1分钟或更长时间,因为我不需要立即收到消息。

有没有办法在JMS中配置轮询间隔?或者我应该使用Amazon SQS API自行处理这个问题。

谢谢

2个回答

1
在这种情况下,你可以选择同步接收调用,即consumer.receive(timeout),而不是消息监听器。你可以在需要的时候才进行接收调用。
我也有些疑惑,因为当队列中有消息时,onMessage方法应该只由SQS消息提供程序调用。这里不应该涉及轮询。
更新:
SQS为JMS提供了一个实现。因此,AsyncMessageListener肯定可以完成你要寻找的工作。这个AsyncMessageListener示例应该会对你有所帮助。

SQS只是一个提供者,并且不会主动调用消费消息的客户端。客户端负责获取消息。consumer.receive是单向的。虽然我们可以在SQS上进行长轮询,但我正在寻找一种使用JMS API来实现这一目标的方法。 - Jiten Gupta

0

生产者和消费者在两个不同的微服务中是什么? - Vaibhav Sharma
1
那篇文章已经过时了,但在那个例子中,生产者和消费者可以在两个不同的微服务上运行,没有任何阻碍。 - Oleg Dulin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接