microjob
    TypeScript icon, indicating that this package has built-in type declarations

    0.7.0 • Public • Published

    Microjob

    npm version Build Status Coverage Status Dependencies

    A tiny wrapper for turning Node.js threads in easy-to-use routines for CPU-bound.

    Introduction

    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 the default API.

    From version v0.1.0 microjob uses a Worker 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 only with Node.js 10.5+ and with the --experimental-worker flag activated, otherwise it won't work.

    More details explained in: Microjob: a tiny multithreading library for Node.js

    Installation

    Via npm:

    $ npm install --save microjob

    Quick Example

    (async () => {
      const { job, start, stop } = require("microjob");
     
      try {
        // start the worker pool
        await start();
     
        // this function will be executed in another thread
        const res = await job(() => {
          let i = 0;
          for (= 0; i < 1000000; i++) {
            // heavy CPU load ...
          }
     
          return i;
        });
     
        console.log(res); // 1000000
      } catch (err) {
        console.error(err);
      } finally {
        // shutdown worker pool
        await stop();
      }
    })();

    Features

    • 🛢️ Worker Pool
    • 🏥 auto self-healing
    • 🙌 easy and simple
    • 🕔 supports both sync and async jobs
    • 🛡️ huge test coverage
    • 📜 well documented

    Documentation

    Dive deep into the documentation to find more examples: Guide

    Known Issues

    Known Limitations

    Keywords

    none

    Install

    npm i microjob

    DownloadsWeekly Downloads

    551

    Version

    0.7.0

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    11

    Last publish

    Collaborators

    • wilk