所以现在我有一堆聊天机器人,我使用包装器作为子进程启动每个机器人。它分配配置文件。但是,由于每个bot都有一个webiste,这意味着express必须在每个bot的唯一端口上运行。我想让所有机器人在同一个端口上运行web服务器。这让我看到了集群而不是孩子。
我目前正在使用child.fork(config.js);
来生成机器人,并且可以预期它正常运行。
但有没有办法将配置变量传递给cluster.fork
,以便每个工作人员都可以使用自己的登录凭据连接到自己的聊天室?
如果有可能,有没有办法像子进程一样杀死/重启工人?
答案 0 :(得分:0)
您可以扩充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文件中获取配置,或者其他内容。