2017-09-24 202 views
1

我试图使用aws SQS从一批5中接收SQS消息,并希望使5个不同的子进程,以便每个同时运行,当他们中的一个完成作业会回到父进程,然后父进程可以从aws SQS调用另一个作业。同样,这将使晚五组的工作目前在服务器上运行SQS队列并行处理消息使用sqs消费者nodejs

编写的代码是:

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

你在这里面临的问题是什么?或者你在检查概念证明是否有效? – Kannaiyan

+0

我没有想法在handleMessagefunction中实现child和parent –

+0

为什么每次只限制5个? – dashmug

回答

1

这是我会怎么解决它在一个可扩展的方式,

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

调用兰巴从另一个lambda /外部流程:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property

希望它可以帮助。

+0

我已经基本上和ec2服务器进行轮询,并且想要同时轮询5条消息,并且一个父进程为并行执行创建不同的子进程 –

+0

您也可以使用外部进程来完成此操作。 Lambda无服务器,ec2将基于服务器。 – Kannaiyan