Code Monkey home page Code Monkey logo

pm's Issues

你好,请教你几个问题哈

  1. 那个监听多个端口是什么意思?用来做负载均衡么?
  2. 多机之间的负载均衡如何做,用nginx么?
  3. 如果说要根据url来做反向代理的话,有什么好的方法么?或者说还有没有别的办法?
    非常感谢哈。

exception throw out for heartbeat when got sigterm

[master:7555][Fri Aug 03 2012 09:05:44 GMT+0800 (CST)] new worker forked (7562) as "/home/pengchun/work/iservice/app/rest.js"
[master:7555][Fri Aug 03 2012 09:05:45 GMT+0800 (CST)] Got SIGTERM, about to exit...
[master:7555][Fri Aug 03 2012 09:05:45 GMT+0800 (CST)] SIGTERM exited

/home/pengchun/work/iservice/node_modules/pm/lib/master.js:200
pstat[i] = msg.data[i];
^
TypeError: Cannot set property 'status' of undefined
at ChildProcess. (/home/pengchun/work/iservice/node_modules/pm/lib/master.js:200:22)
at ChildProcess.emit (events.js:70:17)
at Pipe.onread (child_process.js:102:16)
[worker:7562][Fri Aug 03 2012 09:05:46 GMT+0800 (CST)] terminated after 2.064 seconds.

你好,请教关于监听地址的问题

如果传递接口,默认是监听某个端口,如果一台机器有多个IP,想指定监听特定的IP的时候是不是不行?能够有个参数传递监听的IP,一些内部应用不想直接bind(0.0.0.0).

master api:sendto

send message to all workers named by given. Message will be sent by other worker process in most case.

sendto(name, message) {
}

关于集成pm与kraken

春哥好,有个问题请教下,我现在想用pm配合kraken来使用,但是发现用起来有问题,集成的时候无法监听端口,请问有什么好办法么

当我control+c 终止master进程的时候,报错

/Users/dongming/dev/github/fdserver/node_modules/pm/lib/child.js:271
      handles[i].close();
                 ^
TypeError: Cannot call method 'close' of null
    at /Users/dongming/dev/github/fdserver/node_modules/pm/lib/child.js:271:18
    at Array.forEach (native)
    at Child.stop (/Users/dongming/dev/github/fdserver/node_modules/pm/lib/child.js:270:26)
    at /Users/dongming/dev/github/fdserver/node_modules/pm/lib/master.js:172:19
    at Array.forEach (native)
    at Master.shutdown (/Users/dongming/dev/github/fdserver/node_modules/pm/lib/master.js:171:27)
    at process.<anonymous> (/Users/dongming/dev/github/fdserver/node_modules/pm/lib/master.js:99:13)
    at process.EventEmitter.emit (events.js:98:17)
    at process.<anonymous> (/Users/dongming/dev/github/fdserver/node_modules/pm/lib/master.js:106:15)
    at process.EventEmitter.emit (events.js:92:17)

worker is killed as soon as forked

[master:15324][Fri Aug 10 2012 19:21:36 GMT+0800 (CST)] new worker forked (28497) as "***/app/rest/index.js"
[master:15324][Fri Aug 10 2012 19:21:36 GMT+0800 (CST)] [28497] maybe already been dead, killing ...

0 down time 更新问题

你好,有个关于产品上线之后后,代码更新的问题请教你!

我们打算使用pm 和 nginx 的upstream来部署程序

使用pm开启两个master 进程,nginx做负载

更新线上代码时,我希望kill掉一个进程后,原来已经连接的请求还能继续处理并返回,
请问在pm下有什么好的办法解决这个问题吗?

谢谢~(●ˇ∀ˇ●)

express 2.x app.error 无法注册

因为 express 2.x 中的 app.error 是用于在 app.on('listening',... 的时候才将错误处理加到 app middleware stack 里面确保错误处理在middleware的最后。

请在 readme 里面提醒用户注意此事,在 worker.ready() 前加上

app.emit('listening')

执行Worker.reload()时,若某个worker进程还有没处理完的请求,能否等其处理完再退出?

以下代码:

// 文件:master.js
var pm = require('pm');
var master = pm.createMaster();
master.register('test', 'worker.js', {
  listen:  8080,
  children: 2
});
// 文件:worker.js
var http = require('http').createServer(function (req, res) {
  worker.reload();
  res.write('hello world');
  setTimeout(function () {
    res.end('end');
  }, 6000);
});
var worker = require('pm').createWorker().ready(function (socket, port) {
 http.emit('connection', socket);
});

用浏览器发出一个请求之后,worker.js就执行了reload(),但是要在6秒后才会运行res.end()结束该次请求,我希望在执行worker.reload()后,会启动新的worker进程来接收新的请求,但是当前的worker进程要等待处理完所有请求(或者超时后)才退出,上面的代码貌似不能实现这个需求。

master api: register

/**
 * 注册一类worker进程
 *
 * @param {String} name
 * @param {String} script file
 * @param {Object} options
 * @param {Array} args
 * @return {Object} workerPair
 */

register(name, file, options, args) {

}

方法和类的命名问题

index.js 中的导致方法命名规范不正确

exports.Master = function (options) {
  return master.create(options);
};

exports.Worker = function (options) {
  return worker.create(options);
};

既然 MasterWorker 是两个方法,那么应该命名 masterworker.

windows环境下tcp_wrap报错,Linux环境未测试

报错如下:

image
原因是,在nodejs bindinds里面,tcp_wrap.cc文件的第140行有对实例化时传入的参数进行检验:
image

报错的文件是在 lib/common.js里面,

参考 tcp_wrap.h 里面如下的枚举类型:
image

应该在实例化参数时,传入相应的枚举类型。
image

类比一下,lib/common.js 中的 pipe_wrap 应该也会有同样的问题


2019-10-10 17:02:22
windows系统下,当使用IPC命名管道时,lib/common.js 中第22行:
image
应该为2, 在pipe_wrap.h文件中可以看到
image


lib/child.js中,在windows环境下使用IPC命名管道时,可能会出现handle.setSimultaneousAccepts is not a function的错误,这个错误的报错位置为internal/child_process.js, 可以看出如下发送的句柄出现问题
image

我尝试如下的做法,可以确保错误不会出现,不知道是否可行:
image

以下是我使用的Nodejs环境版本:
image

README是不是过时了?

master.register的参数按readme是不正确的啊,我只能是查源码才发现还是源码靠得住些

/**

  • Register a group of workers.
  • @param {String} name
  • @param {String} file, worker file path.
  • @param {Object} options
    • {Array|Number|String} listen, listen port or domain sock, e.g.: 80, [80, 8080] or [80, '/tmp/web.sock'].
    • {Number} [children], worker number, default is os.cpu number.
    • {Number} [max_request], max request number per child worker. Dafault is 0, no limit.
    • {Number} [max_fatal_restart], max fatal to giveup restart. Dafault is 5.
    • {Bool} [trace_gc], trace gc, default is false.
  • @param {Array} [argv] process start argv.
  • @api public
    */

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.