我正在尝试将数据从我的主应用程序发送到子进程。我尝试过几种不同的选择,但我现在卡住了。建议或指示非常感谢。
我正在关注http://pm2.keymetrics.io/docs/usage/pm2-api/
上的文档index.js:
var pm2 = require('pm2');
var processName = "pm2_app";
console.log("hello world!");
pm2.connect(function(err) {
if (err) {
console.error(err);
process.exit(2);
}
pm2.start({
script : "pm2_app.js" // Script to be run
}, function(err, apps) {
if(err) {
console.log(err);
}
console.log("app started!");
pm2.list(function(err, list) {
console.log("Child process started with pid: " + list[0].pid);
pm2.sendDataToProcessId({
type : 'process:msg',
data : {
some : 'data',
hello : true
},
id : list[0].pid
},
function(err, res) {
console.log(err);
console.log("message sent");
});
pm2.disconnect();
});
});
});
pm2_app.js:
var start = Date.now();
setInterval(function(){
console.log(Date.now() - start);
}, 1000);
process.on('message', function(packet) {
console.log("got message from mr. Rabbit");
console.log(packet);
});
答案 0 :(得分:3)
@chrizz1001最后工作:
<强> index.js 强>
var pm2 = require('pm2');
pm2.connect(function(err) {
if (err) {
console.error(err);
process.exit(2);
}
pm2.start({
script : "pm2_app.js" // Script to be run
}, function(err, apps) {
if(err) {
console.log(err);
}
console.log("app started!");
pm2.list(function(err, list) {
pm2.sendDataToProcessId(list[0].pm2_env.pm_id, {
type : 'process:msg',
data : {
some : 'data',
hello : true
},
topic: "my topic"
},
function(err, res) {
console.log(err);
});
pm2.disconnect();
});
});
});
<强> pm2_app.js:强>
var start = Date.now();
setInterval(function(){
console.log(Date.now() - start);
}, 1000);
process.on('message', function (data) {
console.log('your actual data object', data.data);
});
诀窍是两件事: