不了解Node.js中的child_process / forking

时间:2014-10-27 14:15:12

标签: node.js child-process

我有这段代码:

"use strict";

if(!process.env.CHECKDIN_AWS_KEY || !process.env.CHECKDIN_AWS_SECRET) {
    throw new Error('CHECKDIN AWS ENV vars must be set');
    process.exit();
} else {
    console.log('Starting...');
    var config = require('./config/config'),
        fs = require('fs'),
        sqsQueueURLs = config.sqs.urls,
        _ = require('underscore'),
        mildsauce = require('./lib/mildsaucedb'),
        tasks = [];

    _.each(config.sqs.queues, function(item) {
        var key = item.split("-").pop(),
            tableName = config.dynamo[key],
            params = {
                QueueUrl: config.sqs.urls[key],
                VisibilityTimeout: 60,
                WaitTimeSeconds: 20
            };

        mildsauce.readMessage(params, key, tableName);
    });

}

我需要做的是重写它,以便循环中的每个队列都在自己的child_process上运行。我已经阅读了关于向后和向前分叉的NodeJS文档,但似乎无法理解如何做到这一点

1 个答案:

答案 0 :(得分:0)

如果要为每个队列创建唯一的Node.js进程,请使用child_process.fork。使用fork,您可以在Node进程之间来回发送JSON消息。

如果要创建的进程是非Node.js进程,则使用child_process.exec方法。 Exec采用表示标准终端命令的字符串。