如何在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
ESPERTO
posta 5 mesi fa5 visualizzazioni
1 Risposta
0

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

profile picture
ESPERTO
con risposta 5 mesi fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande