You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
To be able to debug a child process, it must have a differnt debug port than the parent.Tiny worker does this by adding a random port within a range to the parents debug port.The default Range is[1, 300], it can be changed with thesetRange(min, max) method.To disable any automatic port redirection setoptions.noDebugRedirection = true.
automatic redirection
//parent is started with '--debug=1234'varWorker=require("tiny-worker");Worker.setRange(2,20);varworker=newWorker(function(){postMessage(process.debugPort);});worker.onmessage=function(ev){console.log(ev.data);//prints any number between 1236 and 1254worker.terminate();}
manual redirection
//parent is started with '--debug=1234'varWorker=require("tiny-worker");varworker=newWorker(function(){postMessage(process.debugPort);},[],{noDebugRedirection:true,execArgv:["--debug=1235"]});worker.onmessage=function(ev){console.log(ev.data);//prints 1235worker.terminate();}
Properties
onmessage
Message handler, accepts anEvent
onerror
Error handler, accepts anEvent
API
addEventListener(event, fn)
Adds an event listener
postMessage()
Broadcasts a message to theWorker
terminate()
Terminates theWorker
static setRange(min, max)
Sets range for debug ports, only affects current process.Returns true if successful.
FAQ
I have an orphaned child process that lives on past the parent process' lifespan
Most likely aSIGTERM orSIGINT is not reaching the child process
How do I insure all process are terminated?
In your core script register a listener forSIGTERM orSIGINT viaprocess.on() which terminates (all) worker process(es) and then gracefully shutdowns viaprocess.exit(0);
WhySIGTERM orSIGINT?
Unix/BSD will work withSIGTERM, but if you also need to support Windows useSIGINT
License
Copyright (c) 2019 Jason MulliganLicensed under the BSD-3 license