SQS队列使用SQS-Consumer Nodejs对消息的并行处理



我尝试使用AWS SQS以5批次接收来自SQS的消息,并希望制作5个不同的子过程,以便每个过程同时运行,当其中一个完成工作时,它会转弯返回到父进程,然后父进程可以调用AWS SQS的另一个作业。同样,这将使当前在服务器上运行的5个作业

编写的代码为:

const app = Consumer.create({
  queueUrl: 'QUEUE_URL',
  batchSize: 5,
  region:"eu-west-1",
  visibilityTimeout : 300,
  handleMessage: (message, done) => {
    for(var i in data.Messages)
    {
       console.log(JSON.parse(data.Messages[i].Body));
       done();       
    }
  },
  sqs: new AWS.SQS()
});
app.on('error', (err) => {
  console.log(err.message);
});
app.start();

在handlemessage()函数中,如何可以创建每个消息的多个子进程,然后在一个子进程完成执行时将其报告回一个父程进程,以便父程进程可以从AWS SQS呼叫其他消息?

谢谢大家

这是我以可扩展方式解决它的方法

Create a lambda to process each message.
Read Message from SQS and Call Lambda with Lambda API

从另一个lambda/外部过程中调用lamba:

http://docs.aws.amazon.com/awsjavascriptsdk/latest/aws/lambda.html#invoke-property

希望它有帮助。

最新更新