- Notifications
You must be signed in to change notification settings - Fork46
A tiny wrapper for turning Node.js worker threads into easy-to-use routines for heavy CPU loads.
License
wilk/microjob
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A tiny wrapper for turningNode.js threads in easy-to-use routines for CPU-bound.
Microjob is a tiny wrapper for Node.js threads and is intended to perform heavy CPU loads using anonymous functions.
So, Microjob treats Node.js threads as temporary working units: if you need to spawn a long-living thread, then you should use thedefault API.
From version v0.1.0 microjob uses aWorker Pool 🎉
Microjob follows the same line of the original Node.js documentation: use it only for CPU-bound jobs and not for I/O-bound purposes.Quoting the documentation:
Workers are useful for performing CPU-intensive JavaScript operations; do not use them for I/O, since Node.js’s built-in mechanisms for performing operations asynchronously already treat it more efficiently than Worker threads can.
Microjob can be used withNode.js 12+ without flag. WithNode.js 10.5+ you need the--experimental-worker flag activated, otherwise it won't work.
More details explained in:Microjob: a tiny multithreading library for Node.js
Vianpm:
$ npm install --save microjob
(async()=>{const{ job, start, stop}=require("microjob");try{// start the worker poolawaitstart();// this function will be executed in another threadconstres=awaitjob(()=>{leti=0;for(i=0;i<1000000;i++){// heavy CPU load ...}returni;});console.log(res);// 1000000}catch(err){console.error(err);}finally{// shutdown worker poolawaitstop();}})();
- 🛢️ Worker Pool
- 🏥 auto self-healing
- 🙌 easy and simple
- 🕔 supports both sync and async jobs
- 🛡️ huge test coverage
- 📜 well documented
Dive deep into the documentation to find more examples:Guide
About
A tiny wrapper for turning Node.js worker threads into easy-to-use routines for heavy CPU loads.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.