如果您想为每个队列创建一个唯一的Node.js进程,请使用child_process.fork。使用fork,您可以在Node进程之间来回发送JSON消息。
我有这个代码:
"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关于向后和向前分叉的文档,但似乎无法理解如何做到这一点
如果要创建的进程是非Node.js进程,则使用child_process.exec方法。Exec采用一个表示标准终端命令的字符串。