如何在SQS收到消息时调用回调函数?

0

【以下的问题经过翻译处理】 我正在使用aws-sdk包和SQS制作一个NodeJS应用程序。我的应用程序需要以编程方式在我的服务器上运行一些与docker相关的命令(它是一个代码运行应用程序),我正在使用SQS来减慢请求速度。现在,我正在以约1秒的间隔轮询SQS以获取请求,但我认为这是一个不好的实践,因为它会稳定地耗尽我的限制。

是否有任何API可用于在SQS收到消息时调用回调函数? 是否有像这样的东西:

sqs.setCallback((err, data) => { //my code here }, "onmessagerecieve")

如果SQS没有这个API,是否有任何替代品?消息应在1-30秒内接收到队列中。

profile picture
专家
已提问 5 个月前3 查看次数
1 回答
0

【以下的回答经过翻译处理】 因为SQS是托管的外部队列,所以没有回调方法。你可以考虑在你的队列上启用长轮询,这样可以让轮询器的频率远低于每秒一次。你可以在这里查找更多信息:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html,以及在具体的SDK文档中。使用长轮询,你可以每15-20秒轮询一次,并等待消息到达。谢谢,munns

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则