Articles of 进程

NodeJS集群:如何减less主人的数据?

我是新的nodejs,我想要的是从数据库和计算读取数据。为了使其更快,我使用nodejs集群模块。 有两个全局variables:pairMap和nameSet,我把这个作业分配给master进程中的worker,他们做一些计算工作(修改map和set,就像map-reduce一样) 然而, 似乎pairMap和nameSet没有被修改并且是空的。 (在doMasterAction中的代码) (另一个奇怪的是我控制数据,它做了修改,但最终,在主进程中返回到空)。 数据如下(我提取主要思想): const Promise = require('bluebird'); const cluster = require('cluster'); const numCPUs = require('os').cpus().length; const fs = Promise.promisifyAll(require('fs')) const utils = { mergeMap:(source,dest)=>{ for(let [key,value] of Object.entries(source)){ if(!dest.has(key)) dest.set(key,value); for(let [type,arr] of Object.entries(value)){ const final = new Set([…dest.get[key][type],…arr]) dest.get[key][type] = final; } } } } /** * key: name1@group.com||name2@group.com * […]

有没有比child_process中的方法启动进程的另一种方法?

节点child_process不适用于我的用例。 还有什么其他方法可以从node.js应用程序启动进程? Google似乎把我指向了我所尝试过的所有查询的child_process。 编辑我需要从一个node.js应用程序启动一些进程。 这些过程需要比“开始”过程长。 换句话说,如果“开始”进程被杀死(无论如何),产生的进程必须保持畅通无阻。 我已经试图在用child_process中的任何方法启动的进程中拦截SIGINT。 它有点作品,但一旦进程试图写入标准输出进程崩溃。

如何窥探一个nodejs进程

我正在运行需要很长时间的nodejs脚本。 它运行一个很长的循环,并进行一些计算。 最后它会显示答案。 答案可能不是42而是5位数字。 我删除了console.log消息,显示它正在做什么使其运行得更快。 我想知道它有多远。 有没有什么方法可以窥探这个过程,看看它在循环中有多远,或者哪些variables中包含了什么值? 我不想中断它,因为我用time命令运行它来计算得到答案需要多长时间。 花了10亿次,花了9分钟才完成。 你认为需要多长时间才能完成1万亿次循环?

节点 – 如何通过callback节点中处理未捕获的exception?

我正在写一个节点的js应用程序。 我正在使用请求和cheerio来加载一组url,并获得一堆网站的信息,现在让我们假设我想要得到的是标题: var urls = {"url_1", "url_2", "url_3",…,"url_n"}; for(var i=0; i<urls.length; i++) { getDOMTitle(urls[i],function(error,title){ if(error) console.log("Error while getting title for " + urls[i]); else console.log("The title for " + urls[i] + " is " + title); }); } 这是我的getDOMTitle方法的外观: function getDOMTitle(urlReq,callback) { var request = require('request'); var cheerio = require('cheerio'); request({url:urlReq},function(error, response, doc){ var $ […]

Node.js:在Linux中观察进程以了解状态更改

Linux文件系统中是否有文件可以监视进程状态的变化? 换句话说,是否有一个文件可以被监视,用于快速过程状态变化检测? 我假设它会在/proc目录中,我想要使用Node.js和文件系统函数fs.watch()来查看进程状态的即时更改。 (如跑步,冻结,不存在等) 有没有一个文件,我可以find一个进程的地位?

在Node.js中运行asynchronous进程

我知道node.js有很多像I / O函数那样运行asynchronous的函数。 我试图运行我以asynchronous方式创build的两个模块,这些模块只使用CPU,而不是I / O请求。 例如,我有这样的事情:我先调用f2() ,但是我想要它,所以如果f1()首先结束,它不会等到f2()完成; 那可能吗? 这只是一个例子,但我会用这个调用另一个js文件。 我试图用process.nextTick()写这个,但我不知道这是否是真正的解决scheme。 function f1(){ for (i=0;i< 100;i++){ } console.log("f1") } function f2(){ for (i=0;i< 100000000000;i++){ } console.log("f2") } f2(); f1();

杀死一个node.js程序而不杀死subprocess

我有一个node.js程序已经启动了多个subprocess。 我希望能够testing一下,如果节点崩溃但是让它们继续运行,这些subprocess会发生什么。 我尝试了以下内容: process.on('SIGUSR1', function(){ process.exit(0); }); 这对我的testing设置非常有效,当我运行以下命令时,subprocess保持正常运行,Node实例closures: killall -10 node 但是,对于我的生产部署来说,让我感到意外的是,没有把孩子的stream程留下来。 我感兴趣的主要subprocess是铬浏览器的一个实例。 差异似乎是过程开始的方式。 在我的testing设置中,我直接调用节点,但是在我的生产环境中,我调用了一个调用的脚本。 我想find的是上面的匿名callback函数内部的一种方法,它处理SIGUSR1信号,告诉节点不要closures自己的subprocess。 我知道我可以分离我创build的stream程,但是我宁愿做一些不太重要的事情(尽pipe我们承认,这并不太涉及)。 我在Ubuntu 12.04上运行节点0.8.21。 感谢您的任何想法,你可以扔我的路。

获取Node js中的浏览器选项卡标题

我试图在浏览器中获得标签的标题,例如Google Chrome,在我的Node应用程序中。 类似于Win32 API中的GetWindowText()。 如果可能,它需要适用于多个浏览器 目前在Node中,我可以检索当前进程的列表,但是我无法find任何能够提供该进程的详细信息,相当于当您打开任务pipe理器并单击Google Chrome进程上的展开箭头时,为您提供了选项卡的名称。 我尝试了npm中的一些节点模块,但是他们似乎没有把我需要的信息返回给我。 我也在这里看过类似的问题,但是我没有发现任何与我在这里问的相似的东西。 所以如果任何人都可以指出我正确的方向,我将不胜感激, 谢谢

节点在重新启动之前如何删除pid文件?

我使用PM2pipe理节点进程,我试图在重启之前删除每个节点的pid文件,但似乎每次都不行。 这是我的代码: process.on('SIGTERM', function() { fs.unlink('./log/' + process.pid); }); 有时候它可以正常工作,有时候一些旧的pid文件仍然存在。

Node.js获取所有正在运行的进程

我如何获得我的节点服务器上当前正在运行的进程? 我尝试使用ps-node( https://www.npmjs.com/package/ps-node ),但未能获取列表。 我正在寻找类似于C#中的以下命令: // Get all processes running on the local computer. Process[] localAll = Process.GetProcesses(); 可能吗?