由于一个简单的事件相关问题,我被困在这里。这是问题:
- 我使用 cluster.js 和从 cluster.js 分叉的 server.js 创建了一个集群。
- 我从 cluster.js 中放置了一个计时器,每 1 分钟我触发一个事件“testTimer”。我使用了一个事件文件来做到
这一点。 - 我正在尝试
使用我已导入 server.js 并执行 .on('testTimer', callback) 的同一文件从子进程中捕获此事件“testTimer”
但是,在任何进程中都不会捕获事件。我尝试将事件设为全局并将事件全局分配给符号,但也无法使其工作/捕获事件。
这是代码:
cluster.js(子进程创建者)
...require > events.js...
... create cluster logic...
setInterval(function () {
evt.emit('testTimer', {tester: 'test'});
evt.tester();
}, 1000);
server.js(子进程)
...require > events.js...
evt.on('testTimer', function (data) {
console.log('Starting Sync ', data);
});
events.js(事件的公共文件)
var util = require("util");
var EventEmitter = require("events").EventEmitter;
function test () {
EventEmitter.call(this);
}
test.prototype.tester = function (){
this.emit('testTimer', {missed: 'this'})
}
util.inherits(test, EventEmitter);
module.exports = test;