tiny-worker
Tiny WebWorker for Server
require()
is available for flexible inline Worker scripts. Optional parameters args
Array & options
Object; see child_process.fork()
documentation.
Example
Creating a Worker from a file
The worker script:
onmessage = function (ev) {
postMessage(ev.data);
};
The core script:
var Worker = require("tiny-worker");
var worker = new Worker("repeat.js");
worker.onmessage = function (ev) {
console.log(ev.data);
worker.terminate();
};
worker.postMessage("Hello World!");
Creating a Worker from a Function
var Worker = require("tiny-worker");
var worker = new Worker(function () {
self.onmessage = function (ev) {
postMessage(ev.data);
};
});
worker.onmessage = function (ev) {
console.log(ev.data);
worker.terminate();
};
worker.postMessage("Hello World!");
Properties
onmessage
Message handler, accepts an Event
onerror
Error handler, accepts an Event
API
addEventListener(event, fn)
Adds an event listener
postMessage()
Broadcasts a message to the Worker
terminate()
Terminates the Worker
FAQ
- I have an orphaned child process that lives on past the parent process' lifespan
- Most likely a
SIGTERM
orSIGINT
is not reaching the child process
- How do I insure all process are terminated?
- In your core script register a listener for
SIGTERM
orSIGINT
viaprocess.on()
which terminates (all) worker process(es) and then gracefully shutdowns viaprocess.exit(0);
- Why
SIGTERM
orSIGINT
?
- Unix/BSD will work with
SIGTERM
, but if you also need to support Windows useSIGINT
License
Copyright (c) 2017 Jason Mulligan Licensed under the BSD-3 license