Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

@2o3t/process-manager

Process manager for Nodejs.

Ideas from https://github.com/Microsoft/vscode.

Installation

npm install @2o3t/process-manager

or

yarn add @2o3t/process-manager

Usage

Client (main process):

constPM=require('@2o3t/process-manager');constclient=newPM.Client(__dirname+'/sub-processes.js');constchannel=client.getChannel('channelName');channel.call('info',{// something}).then(data=>{console.log('data',data);});channel.listen('ccc')(aa=>{console.log('listen..',aa);});

Server (sub process):

constPM=require('@2o3t/process-manager');constserver=newPM.Server();constchannel=newPM.ServerChannel({info(arg){console.log('arg: ',arg);returnPromise.resolve(server.info);},ccc(emit){emit('100w');emit('101w');// server.dispose();emit('102w');emit('103w');emit('104w');},});console.log('server ok');server.registerChannel('channelName',channel);

Options

Client options in paramters

modulePath: file path of sub process

options: Object.

keytypedesc
serverNamestringA descriptive name for the server this connection is to. Used in logging.
timeout?numberTime in millies before killing the ipc process. The next request after killing will start it again.
args?string[]Arguments to the module to execute.
env?anyEnvironment key-value pairs to be passed to the process that gets spawned for the ipc.
debug?numberAllows to assign a debug port for debugging the application executed.
debugBrk?numberAllows to assign a debug port for debugging the application and breaking it on the first line.
freshExecArgv?booleanSee microsoft/vscode#27665
* Allows to pass in fresh execArgv to the forked process such that it doesn't inherit them from process.execArgv.
* e.g. Launching the extension host process with --inspect-brk=xxx and then forking a process from the extension host results in the forked process inheriting --inspect-brk=xxx.
useQueue?booleanEnables our createQueuedSender helper for this Client. Uses a queue when the internal Node.js queue is full of messages - see notes on that method.

Server options in paramters

options: Object.

keytypedesc
timeoutDelay?numberThey will timeout after timeoutDelay.

License

MIT

About

[Library] Process manager for Nodejs

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages