在 PM2 实例之间发送事件或消息的简单方法

Simple way to send events or messages between PM2 instances

我正在寻找向所有 PM2 集群传送消息的最简单方法,就像使用 eventEmitter "emit" 和 "on" 函数一样简单。

我想避免使用 RabbitMQ 等第三方工具,而只依赖本机 Node 或 NPM。 到目前为止我看过

期待您的建议

你可以自己用PM2

它用于访问您所有的 pm2 应用程序即时:

let pm2 = require('pm2');




var pm2_worker_ids = [];

pm2.connect(function (err) {

    pm2.list(function (err, data) {

        for (var i in data) {
            if (data.hasOwnProperty(i)) {
                pm2_worker_ids.push(data[i].pm2_env.pm_id);
            }
        }

        pm2.disconnect(function () {});
    });
});

发送事件很简单:

if (pm2_worker_ids.hasOwnProperty(i)) {

        let data = {yourData:"you can make custom data"};

        pm2.sendDataToProcessId(pm2_worker_ids[i], {
            type: 'some random text',
            data: data,
            id: pm2_worker_ids[i],
            topic: 'some random text'
        }, function (err, res) {});

    }

它正在监听您的事件 :

process.on('message', function (data) {
    console.log('your actual data object', data.data);
});