Newer
Older
`require()` is available for flexible inline Worker scripts. Optional parameters `args` Array & `options` Object; see `child_process.fork()` documentation.
Jason Mulligan
committed
[](http://travis-ci.org/avoidwork/tiny-worker)
## Example
#### Creating a Worker from a file
The worker script:
```javascript
onmessage = function (ev) {
postMessage(ev.data);
};
```
The core script:
```javascript
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!");
var Worker = require("tiny-worker");
var worker = new Worker(function () {
self.onmessage = function (ev) {
postMessage(ev.data);
};
});
worker.onmessage = function (ev) {
```
## 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`
## FAQ
1. I have an orphaned child process that lives on past the parent process' lifespan
* Most likely a `SIGTERM` or `SIGINT` is not reaching the child process
* In your core script register a listener for `SIGTERM` or `SIGINT` via `process.on()` which terminates (all) worker process(es) and then gracefully shutdowns via `process.exit(0);`
3. Why `SIGTERM` or `SIGINT`?
* Unix/BSD will work with `SIGTERM`, but if you also need to support Windows use `SIGINT`