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

1.0.1 • Public • Published

Simple Fork

Forking in node.js simplified. Fork a method with no extra effort.

Inspiration

  • I needed to run a long running process (Elasticsearch bulk index) in the background so as to not block the event loop so the entire app would not come to a crawl. The process was implemented as a method and so the best option was to fork that method and offload that process.

Usage

  • Call a method in the same file to run in a forked process:
import { SimpleFork } from 'simple-fork';

const sp = new SimpleFork(require.resolve(`${__dirname}/${path.basename(__filename)}`));

// pass in the function name as a string
const childProcess: any = sp.fork('randomProcess');

// send any arguments to the function with a callback to receive anything back
childProcess('childProcessArgument', (arg: any) => {

    // will print callback foo
    console.log('callback', arg);
    sp.end();

  });

}


export function randomProcess(arg: any, fn: Function) {

  // will print running childProcessArgument
  console.log('child running', arg);
  fn('foo');

}

  • Call a method in a different file
import { SimpleFork } from 'simple-fork';

const sp = new SimpleFork(require.resolve('../scripts/randomProcess'));
const childProcess: any = sp.fork('run');
childProcess('childProcessArgument', (arg: any) => {

  console.log('callback', arg);

});

References

Readme

Keywords

none

Package Sidebar

Install

npm i simple-fork

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

24.6 kB

Total Files

39

Last publish

Collaborators

  • khaliqgant