Class AbstractWorker<MainWorker, Data, Response>Abstract

Base class that implements some shared logic for all poolifier workers.

Type Parameters

  • MainWorker extends Worker | MessagePort

    Type of main worker.

  • Data = unknown

    Type of data this worker receives from pool's execution. This can only be serializable data.

  • Response = unknown

    Type of response the worker sends back to the main worker. This can only be serializable data.

Hierarchy

Constructors

  • Constructs a new poolifier worker.

    Type Parameters

    • MainWorker extends Worker | MessagePort

    • Data = unknown

    • Response = unknown

    Parameters

    • type: string

      The type of async event.

    • isMain: boolean

      Whether this is the main worker or not.

    • fn: WorkerFunction<Data, Response>

      Function processed by the worker when the pool's execution function is invoked.

    • mainWorker: undefined | null | MainWorker

      Reference to main worker.

    • opts: WorkerOptions = ...

      Options for the worker.

    Returns AbstractWorker<MainWorker, Data, Response>

Properties

aliveInterval?: Timeout

Handler id of the aliveInterval worker alive check.

isMain: boolean

Whether this is the main worker or not.

lastTaskTimestamp: number

Timestamp of the last task processed by this worker.

mainWorker: undefined | null | MainWorker

Reference to main worker.

opts: WorkerOptions = ...

Options for the worker.

Methods

  • Returns

    The unique asyncId assigned to the resource.

    Returns number

  • Binds the given function to execute to this AsyncResource's scope.

    The returned function will have an asyncResource property referencing the AsyncResource to which the function is bound.

    Since

    v14.8.0, v12.19.0

    Type Parameters

    • Func extends ((...args: any[]) => any)

    Parameters

    • fn: Func

      The function to bind to the current AsyncResource.

    Returns Func & {
        asyncResource: AsyncResource;
    }

  • Call all destroy hooks. This should only ever be called once. An error will be thrown if it is called more than once. This must be manually called. If the resource is left to be collected by the GC then the destroy hooks will never be called.

    Returns

    A reference to asyncResource.

    Returns AbstractWorker<MainWorker, Data, Response>

  • Handles an error and convert it to a string so it can be sent back to the main worker.

    Returns

    Message of the error.

    Parameters

    • e: string | Error

      The error raised by the worker.

    Returns string

  • Call the provided function with the provided arguments in the execution context of the async resource. This will establish the context, trigger the AsyncHooks before callbacks, call the function, trigger the AsyncHooks after callbacks, and then restore the original execution context.

    Since

    v9.6.0

    Type Parameters

    • This

    • Result

    Parameters

    • fn: ((this: This, ...args: any[]) => Result)

      The function to call in the execution context of this async resource.

        • (this: This, ...args: any[]): Result
        • Parameters

          • this: This
          • Rest ...args: any[]

          Returns Result

    • Optional thisArg: This

      The receiver to be used for the function call.

    • Rest ...args: any[]

      Optional arguments to pass to the function.

    Returns Result

  • Returns

    The same triggerAsyncId that is passed to the AsyncResource constructor.

    Returns number

  • Binds the given function to the current execution context.

    The returned function will have an asyncResource property referencing the AsyncResource to which the function is bound.

    Since

    v14.8.0, v12.19.0

    Type Parameters

    • Func extends ((this: ThisArg, ...args: any[]) => any)

    • ThisArg

    Parameters

    • fn: Func

      The function to bind to the current execution context.

    • Optional type: string

      An optional name to associate with the underlying AsyncResource.

    • Optional thisArg: ThisArg

    Returns Func & {
        asyncResource: AsyncResource;
    }

Generated using TypeDoc