Class BatchProcess

BatchProcess manages the care and feeding of a single child process.

Constructors

  • Parameters

    • proc: ChildProcess
    • opts: InternalBatchProcessOptions
    • onIdle: (() => void)

      to be called when internal state changes (like the current task is resolved, or the process exits)

        • (): void
        • Returns void

    Returns BatchProcess

Properties

failedTaskCount: number = 0
name: string
opts: InternalBatchProcessOptions
pid: number
proc: ChildProcess
start: number = ...
startupTaskId: number

Accessors

  • get ended(): boolean
  • Returns boolean

    true if this.end() has completed running, which includes child process cleanup. Note that this may return true and the process table may still include the child pid. Call () for an authoritative (but expensive!) answer.

  • get ending(): boolean
  • Returns boolean

    true if this.end() has been requested (which may be due to the child process exiting)

  • get exited(): boolean
  • Returns boolean

    true if the child process has exited and is no longer in the process table. Note that this may be erroneously false if the process table hasn't been checked. Call () for an authoritative (but expensive!) answer.

  • get healthy(): boolean
  • Returns boolean

    true if the process doesn't need to be recycled.

  • get idle(): boolean
  • Returns boolean

    true iff no current task. Does not take into consideration if the process has ended or should be recycled: see BatchProcess.ready.

  • get ready(): boolean
  • Returns boolean

    true iff this process is both healthy and idle, and ready for a new task.

  • get whyNotReady(): null | WhyNotReady
  • Returns null | WhyNotReady

    a string describing why this process cannot currently handle a new task, or undefined if this process is idle and healthy.

Methods

  • End this child process.

    Parameters

    • gracefully: boolean = true

      Wait for any current task to be resolved or rejected before shutting down the child process.

    • reason: WhyNotHealthy

      who called end() (used for logging)

    Returns Promise<void>

    Promise that will be resolved when the process has completed. Subsequent calls to end() will ignore the parameters and return the first endPromise.

  • Returns boolean

    true if the child process is in the process table