在详细解释问题之前,我先告诉你我目前的做法。
我有一个运行 setInterval() 的 js 脚本。
并且每个间隔,我都会调用 SQS 从队列中获取消息。如果有消息,那么我处理它。
因此,它将无限运行,直到我终止该进程。
我之前也建过一个 Node 服务器(使用nodejs.org中的例子)
所以,我想知道的是,...而不是让 setInterval 定期运行。有没有办法,如果 SQS 中有一条新消息,那么它会触发一个事件并处理该消息?
最佳答案
这个问题已经超过 2 年了.. 但是有比更改轮询间隔更好的方法。而是将队列的接收消息等待时间设置为最长 20 秒。然后您可以进行连续轮询,但在队列为空时每分钟只会发出 3 个请求。当队列中有数据时,将立即响应。
关于events - 如何让 nodejs 服务器监听 AWS SQS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869657/