我可以将变量传递给node.js中的cluster.fork吗?

时间:2013-12-26 22:57:49

标签: node.js

所以现在我有一堆聊天机器人,我使用包装器作为子进程启动每个机器人。它分配配置文件。但是,由于每个bot都有一个webiste,这意味着express必须在每个bot的唯一端口上运行。我想让所有机器人在同一个端口上运行web服务器。这让我看到了集群而不是孩子。

我目前正在使用child.fork(config.js);来生成机器人,并且可以预期它正常运行。

但有没有办法将配置变量传递给cluster.fork,以便每个工作人员都可以使用自己的登录凭据连接到自己的聊天室?

如果有可能,有没有办法像子进程一样杀死/重启工人?

1 个答案:

答案 0 :(得分:0)

查看documentation

您可以扩充process.env,然后在分叉流程中使用它。

var _ = require('lodash');
var child = require('child_process');
var env = _.clone(process.env);

env.BOT_ID = 'dalton';
child.fork('./config.js', { env: env });

我建议您在env中保留最少量的信息,然后使用它来从JSON文件中获取配置,或者其他内容。