我尝试使用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调用其他消息?
谢谢你们
答案 0 :(得分:1)
以下是我如何以可扩展的方式解决它,
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
希望它有所帮助。