@depax/cluster-master
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

Cluster Master

CircleCI Todos Features Coverage Documentation Report

Installation

Install the package normally using NPM or Yarn.

yarn add @depax/cluster-master

Usage

An entry point callback is provided which would define the initialization of the applications master and worker instances.

import EntryPoint, { Builds } from "@depax/cluster-master";

EntryPoint("TheNameOfYourApplicationProcess", {
    // The options to pass to the worker and cluster controllers.
    build: process.env.NODE_ENV === "production" ? Builds.Live : Builds.Dev,
}, async (config, logger) => {
    // Initialize the worker, here you would create an instance of your application.
    const MyApp = require("./MyApp").default;
    await (new MyApp()).initialize();
}, async (config) => {
    // initialize the master, here we can provide the master logger which will recieve all the workers logs using @depax/logger.
    const logger = new ConsoleLogger("master");
    return logger;
});

The EntryPoint second argument is some options for managing the workers and master, the following is the default options;

{
    /** The title of the main process. */
    title: string = "";

    /** The build type. */
    build: Builds = process.env.NODE_ENV === "production" ? Builds.Live : Builds.Dev;

    /** The maximum number of forks. */
    maxForks: number = os.cpus().length;

    /** Set to true to use only master if in dev mode. */
    singleWorkerDev: boolean = true;

    /** The delay before a new fork is created during the initialization. */
    initializeForkDelay: number = 0;

    /** The number of attempts we can respawn workers and fails, this will be multiplied by the max forks. */
    respawnAttempts: number = 5;

    /** The amount of time in ms before the attempts are cleared. */
    respawnAttemptsInterval: number = 1000;
}

Readme

Keywords

Package Sidebar

Install

npm i @depax/cluster-master

Weekly Downloads

1

Version

1.0.5

License

Unlicense

Unpacked Size

15 kB

Total Files

13

Last publish

Collaborators

  • johnloveking
  • orgun109uk