Skip to content

charliegarrison/node-thread-storm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-thread-storm

Multithreading in node. node-thread-storm allows you to run code simultaneously using node's cluster funcionality.

npm install thread-storm

Using the thread storm library is simple and straight forward. Below is a simple example. First, require the library.

threadStorm = require('thread-storm')

The next part might seem a little strange, but you need to return if threadStorm.isMaster flag is false;

if(!threadStorm.isMaster) { return; }

Start the library and wait for the background threads to be ready.

threadStorm.ee.on('ready', function() { ...do something }); threadStorm.start();

Once the library is ready you can run tasks on the background threads as easy as

//returns boolean. True if thread was available, false if not threadStorm.runTask("someFile.js",{someKey: "some value"});

The first arg is the path and name of a JS files of code u want run.

The second arg will be passed as the first argument to your function.

The second arg passed to your function will be the module.exports of a job runner which are methods as follows: taskCommunicator (to pass data back to your main code) completed (to be called when your background code finished. If you ever want it to finish and free up the thread for other jobs.)

your javascript file might look something like this:

module.exports = function(sessionData,parent) { setTimeout(function() { parent.completed(); },10000); };

you can also listen to the following events from threadStorm.ee

msg - get a message from the task running

taskFailed - called when your task fails (if the thread dies unexpectedly)

taskComplete - called when your tasks completes

About

Think node is single threaded? think again

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors