我的问题很简短,但我认为很有趣:
我有一个Amazon SQS服务的队列,并且每秒轮询这个队列。当有消息时,我会处理该消息,处理完后再返回轮询队列。
是否有更好的方法?例如某种触发器?在您看来,哪种方法最好?为什么?
谢谢!
我的问题很简短,但我认为很有趣:
我有一个Amazon SQS服务的队列,并且每秒轮询这个队列。当有消息时,我会处理该消息,处理完后再返回轮询队列。
是否有更好的方法?例如某种触发器?在您看来,哪种方法最好?为什么?
谢谢!
一个方便易用的从SQS消费消息的库是sqs-consumer
const Consumer = require('sqs-consumer');
const app = Consumer.create({
queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
handleMessage: (message, done) => {
console.log('Processing message: ', message);
done();
}
});
app.on('error', (err) => {
console.log(err.message);
});
app.start();
如果您需要更多信息,这个问题已经有完整的文档记录。您可以在此链接找到文档: https://github.com/bbc/sqs-consumer
正如Mircea所提到的,长轮询是一种选择。
当您要求一个“触发器”时,我相信您正在寻找与自己持续轮询SQS不同的东西。如果是这种情况,我建议您查看AWS Lambda。它允许您将代码放在云中,并在配置的事件(例如SNS事件、推送到S3的文件等)触发时自动触发。
const { Consumer } = require('sqs-consumer');
- Falcon Stakepool