- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我已阅读 this question 中的答案并尝试了多种方法来解决我的问题但无法解决 - 因此从我这边发布此查询。
基本上,我有一个数组中的服务列表——大约有 1500 个服务在运行我的 NodeJS 应用程序的不同盒子上运行。根据我的代码,我通过 ssh 到/a 框并通过 expect 脚本,然后 cd 到特定目录以获取每个服务版本/构建 ID,这些服务版本/构建 ID 存储在每个特定路径的特定文件中服务。对于某些服务,相同的文件(具有版本/构建信息)有可能存储在框中的不同位置。所以我在应用程序中有算法,以防万一尝试获取第一条路径的详细信息失败,我将使用其他脚本来查找不同路径的信息:
主要代码块:
exports.getservicedetails = function(box,res) {
var job = [];
for (i = 0; i < services.length; i++ )
{
var children = new Object();
children.server = services[i];
children.box = box;
children.process = spawn('./scripts/info.sh', [children.server , children.box , getStageURL(children.box)]);
children.runstate = 1;
job.push(children);
createChildEvents(job, i, res);
}
}
现在我为每个生成的任务设置所有事件:
function createChildEvents(child, id, res){
(child[id]).process.stderr.on('data', function (data) {
(child[id]).runstate = 0;
});
(child[i]).process.on('exit', function (code) {
(child[id]).runstate = 0;
checkstate(child, res); // function to check if all spawned tasks has exited
});
(child[id]).process.stdout.on('data', function (data) {
var result = data.toString().split("\r\n"); // split the stdout outputted lines
for (var i = 0; i < result.length; i++)
{
console.log('Server : ' + (child[id]).server + " PID : " + (child[id]).process.pid + ' ' + (child[id]).box);
if ((child[id]).box.length > 0 && result[i].match(/No such file or directory/gi) != null) {
(child[id]).process = spawn('./scripts/info2.sh ',[(child[id]).server, (child[id]).box, getStageURL((child[id]).box)]);
(child[id]).box = '';
(child[id]).runstate = 1;
createChildEvents(child, id, res);
break;
}
if(result[i].match(/release_version*/) != null || result[i].match(/app.version*/) != null)
(child[id]).serversion = (result[i].split('='))[1];
if(result[i].match(/release_number*/) != null || result[i].match(/app.id*/) != null)
(child[id]).serproduct = (result[i].split('='))[1];
}
});
}
问题是在获得如下所述的第 11 个控制台日志后,我看到错误:
Server : a PID : 27200 myboxname
Server : b PID : 31650 myboxname
Server : d PID : 31644 myboxname
Server : e PID : 31664 myboxname
Server : f PID : 28946 myboxname
Server : g PID : 32507 myboxname
Server : h PID : 29329 myboxname
Server : i PID : 29905 myboxname
Server : j PID : 29883 myboxname
Server : k PID : 481 myboxname
Server : l PID : 777 myboxname
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener (events.js:168:15)
at EventEmitter.once (events.js:189:8)
at Transport.logException (src/node_modules/winston/lib/winston/transports/transport.js:118:8)
at logAndWait (src/node_modules/winston/lib/winston/logger.js:613:15)
at async.forEach (src/node_modules/winston/node_modules/async/lib/async.js:86:13)
at Array.forEach (native)
at _forEach (src/node_modules/winston/node_modules/async/lib/async.js:26:24)
at Object.async.forEach (src/node_modules/winston/node_modules/async/lib/async.js:85:9)
at Logger._uncaughtException (src/node_modules/winston/lib/winston/logger.js:636:9)
at process.EventEmitter.emit (events.js:115:20)
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener (events.js:168:15)
at EventEmitter.once (events.js:189:8)
at Transport.logException (src/node_modules/winston/lib/winston/transports/transport.js:117:8)
at logAndWait (src/node_modules/winston/lib/winston/logger.js:613:15)
at async.forEach (src/node_modules/winston/node_modules/async/lib/async.js:86:13)
at Array.forEach (native)
at _forEach (src/node_modules/winston/node_modules/async/lib/async.js:26:24)
at Object.async.forEach (src/node_modules/winston/node_modules/async/lib/async.js:85:9)
at Logger._uncaughtException (src/node_modules/winston/lib/winston/logger.js:636:9)
at process.EventEmitter.emit (events.js:115:20)
我尝试添加“process.setMaxListeners(0);”在我的代码中的很多地方,但我仍然看到这个错误?
知道如何解决这个问题吗?提前致谢。
我已经尝试了很长时间自己解决这个问题,但找不到适合我的问题的解决方案。 我有这个方法: handle_database = function(callback, req, res) { pool.ge
我差点把问题标题写成 - Communicating between eventEmitters 我有一个全局范围内的 node.js 模块 (X)(它使用 eventEmitter)。然后我有每个套
我正在尝试从一个 EventEmitter 发射到另一个 EventEmitter,或者寻找替代解决方案。下面的代码不起作用。 多发射器示例 var events = require('events'
有很多示例在自定义事件发射器构造函数中未使用 events.EventEmitter.call(this),而其他示例正在使用它 (official documentation): var event
假设我有这段代码: export class ProductsListComponent { @Output() onProductSelected: EventEmitter; constr
有时我们会遇到泛型变量应该被省略的情况。像这样: @Component( ... ) class MyComponent { @Output() public cancel = new Eve
我想做这样的事情: var events = require("events"); var emitterA = new events.EventEmitter(); var emitterB = n
EventEmitter.emit() 和 EventEmitter.next() 有什么区别?两者都将事件分派(dispatch)给订阅的监听器。 export class MyService {
我是 angular2 的新手,我对使用 EmitterService 的 EventEmitter 感到困惑,任何人都可以向我解释 Emitter 的用途。 在不使用@input 和@output
我正在学习 Node.js,对自定义 EventEmitter 有一些困惑。代码如下: var events = require("events"); function MyEmitter (name
如标题所述,我想用 TypeScript 重写下面的语句 EventEmitter = require('events').EventEmitter ES6风格 import {EventEmitte
obj.prototype.__proto__ = events.EventEmitter.prototype 我有时会看到上面的代码,我用谷歌搜索了一下,他们说这一行将所有 EventEmitter
我创建了一个抽象父类(super class)来处理我应用中各种表单组件的通用因素。 出于某种原因,我无法正确捕获由在父类(super class)中声明了 EventEmitter 的派生类发出的事
我尝试将表单从我的子组件传递给他的父组件。 child TS: @Output() submit: EventEmitter = new EventEmitter(); updateStream():
这真的很奇怪,也很难解释。 我用过EventEmitter在我的一些服务中,我一直在使用它来更改我的 View 数据。 我遇到了更改路线(通过链接或通过历史返回)的问题,它似乎被多次触发,因此它搞乱了
我正在开发一个 Angular2 组件,它使用网络摄像头将图片捕捉到 Canvas 元素,并将其提取为 Blob。 Blob 和事件分别正常工作,但是当我尝试从 toBlob 的回调函数内发出事件时,
当我有一个带有选择器'recursive-element'的模板时,它的模板看起来像这样 在我定义的类中 greetEvent = new EventEmitter
我非常喜欢将函数导出为 JavaScript 模块的主要 API 的模式。原因是在 JS 中,函数基本上可以做典型对象可以做的任何事情,然后再做一些。 所以这对我来说很典型: function stu
我有这个 Node js脚本: var EventEmitter = require('events').EventEmitter, util = require('util'); var p
在事件生成后附加事件处理程序有一个看似众所周知的问题。这主要是在调用遵循返回 EventEmitter 模式的函数时出现的问题,例如: var EventEmitter = require('even
我是一名优秀的程序员,十分优秀!