X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Finterfaces%2FIWorkerNode.html;h=b550427bfaf9b2030b15cf2b10735a19e641b13c;hb=c8576e5fe740384f6f61316b7f09a788a14ab0ef;hp=f98ed472baa1573411b8f7dd6b03cba2d94a1f19;hpb=71d327d5587f0ce2b746ba33ec0cfbb3a0dc5d1b;p=poolifier.git diff --git a/docs/interfaces/IWorkerNode.html b/docs/interfaces/IWorkerNode.html index f98ed472..b550427b 100644 --- a/docs/interfaces/IWorkerNode.html +++ b/docs/interfaces/IWorkerNode.html @@ -1,417 +1,183 @@ -IWorkerNode | poolifier - v2.7.4
-
- -
-
-
-
- -

Interface IWorkerNode<Worker, Data>Internal

-
-

Worker node interface.

-
-
-
-

Type Parameters

-
    -
  • -

    Worker extends IWorker

    -

    Type of worker.

    -
    -
  • -
  • -

    Data = unknown

    -

    Type of data sent to the worker. This can only be structured-cloneable data.

    -
    -
-
-

Hierarchy

-
    -
  • IWorkerNode
-
-
-
- -
-
-

Properties

-
- -
clearTasksQueue: (() => void)
-
-

Type declaration

-
    -
  • -
      -
    • (): void
    • -
    • -

      Clears tasks queue.

      -
      -

      Returns void

      -
-
- -
closeChannel: (() => void)
-
-

Type declaration

-
    -
  • -
      -
    • (): void
    • -
    • -

      Closes communication channel.

      -
      -

      Returns void

      -
-
- -
deleteTaskFunctionWorkerUsage: ((name) => boolean)
-
-

Type declaration

-
    -
  • -
      -
    • (name): boolean
    • -
    • -

      Deletes task function worker usage statistics.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: string
        -

        The task function name.

        -
        -
      -

      Returns boolean

      true if the task function worker usage statistics were deleted, false otherwise.

      - -
-
- -
dequeueTask: (() => undefined | Task<Data>)
-
-

Type declaration

-
    -
  • -
      -
    • (): undefined | Task<Data>
    • -
    • -

      Dequeue task.

      -
      -

      Returns undefined | Task<Data>

      The dequeued task.

      - -
-
- -
enqueueTask: ((task) => number)
-
-

Type declaration

-
    -
  • -
      -
    • (task): number
    • -
    • -

      Enqueue task.

      -
      -
      -

      Parameters

      -
        -
      • -
        task: Task<Data>
        -

        The task to queue.

        -
        -
      -

      Returns number

      The tasks queue size.

      - -
-
- -
getTaskFunctionWorkerUsage: ((name) => undefined | WorkerUsage)
-
-

Type declaration

-
    -
  • -
      -
    • (name): undefined | WorkerUsage
    • -
    • -

      Gets task function worker usage statistics.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: string
        -

        The task function name.

        -
        -
      -

      Returns undefined | WorkerUsage

      The task function worker usage statistics if the task function worker usage statistics are initialized, undefined otherwise.

      - -
-
- -
hasBackPressure: (() => boolean)
-
-

Type declaration

-
    -
  • -
      -
    • (): boolean
    • -
    • -

      Whether the worker node has back pressure (i.e. its tasks queue is full).

      -
      -

      Returns boolean

      true if the worker node has back pressure, false otherwise.

      - -
-
- - -

Worker info.

-
-
-
- -
messageChannel?: MessageChannel
-

Message channel (worker_threads only).

-
-
-
- -
onBackPressure?: WorkerNodeEventCallback
-

Callback invoked when worker node tasks queue is back pressured.

-
-
-
- - -

Callback invoked when worker node tasks queue is empty.

-
-
-
- -
popTask: (() => undefined | Task<Data>)
-
-

Type declaration

-
    -
  • -
      -
    • (): undefined | Task<Data>
    • -
    • -

      Pops a task from the tasks queue.

      -
      -

      Returns undefined | Task<Data>

      The popped task.

      - -
-
- -
resetUsage: (() => void)
-
-

Type declaration

-
    -
  • -
      -
    • (): void
    • -
    • -

      Resets usage statistics.

      -
      -

      Returns void

      -
-
- -
strategyData?: StrategyData
-

Worker choice strategy data. -This is used to store data that is specific to the worker choice strategy.

-
-
-
- -
tasksQueueBackPressureSize: number
-

Tasks queue back pressure size. +IWorkerNode | poolifier - v4.0.1

Interface IWorkerNode<Worker, Data>Internal

Worker node interface.

+
interface IWorkerNode<Worker, Data> {
    clearTasksQueue: (() => void);
    deleteTaskFunctionWorkerUsage: ((name) => boolean);
    dequeueTask: ((bucket?) => undefined | Task<Data>);
    enqueueTask: ((task) => number);
    getTaskFunctionWorkerUsage: ((name) => undefined | WorkerUsage);
    hasBackPressure: (() => boolean);
    info: WorkerInfo;
    messageChannel?: MessageChannel;
    registerOnceWorkerEventHandler: ((event, handler) => void);
    registerWorkerEventHandler: ((event, handler) => void);
    strategyData?: StrategyData;
    tasksQueueBackPressureSize: number;
    tasksQueueSize: (() => number);
    terminate: (() => Promise<void>);
    usage: WorkerUsage;
    worker: Worker;
    [captureRejectionSymbol]?<K>(error, event, ...args): void;
    addListener<K>(eventName, listener): this;
    emit<K>(eventName, ...args): boolean;
    eventNames(): (string | symbol)[];
    getMaxListeners(): number;
    listenerCount<K>(eventName, listener?): number;
    listeners<K>(eventName): Function[];
    off<K>(eventName, listener): this;
    on<K>(eventName, listener): this;
    once<K>(eventName, listener): this;
    prependListener<K>(eventName, listener): this;
    prependOnceListener<K>(eventName, listener): this;
    rawListeners<K>(eventName): Function[];
    removeAllListeners(eventName?): this;
    removeListener<K>(eventName, listener): this;
    setMaxListeners(n): this;
}

Type Parameters

  • Worker extends IWorker

    Type of worker.

    +
  • Data = unknown

    Type of data sent to the worker. This can only be structured-cloneable data.

    +

Hierarchy

  • EventEmitter
    • IWorkerNode

Properties

clearTasksQueue: (() => void)

Clears tasks queue.

+

Type declaration

    • (): void
    • Returns void

deleteTaskFunctionWorkerUsage: ((name) => boolean)

Deletes task function worker usage statistics.

+

Type declaration

    • (name): boolean
    • Parameters

      • name: string

        The task function name.

        +

      Returns boolean

Returns

true if the task function worker usage statistics were deleted, false otherwise.

+
dequeueTask: ((bucket?) => undefined | Task<Data>)

Dequeue task.

+

Type declaration

    • (bucket?): undefined | Task<Data>
    • Parameters

      • Optional bucket: number

        The prioritized bucket to dequeue from.

        +

      Returns undefined | Task<Data>

Default Value

0
+
+

Returns

The dequeued task.

+
enqueueTask: ((task) => number)

Enqueue task.

+

Type declaration

    • (task): number
    • Parameters

      Returns number

Returns

The tasks queue size.

+
getTaskFunctionWorkerUsage: ((name) => undefined | WorkerUsage)

Gets task function worker usage statistics.

+

Type declaration

Returns

The task function worker usage statistics if the task function worker usage statistics are initialized, undefined otherwise.

+
hasBackPressure: (() => boolean)

Whether the worker node has back pressure (i.e. its tasks queue is full).

+

Type declaration

    • (): boolean
    • Returns boolean

Returns

true if the worker node has back pressure, false otherwise.

+

Worker info.

+
messageChannel?: MessageChannel

Message channel (worker thread only).

+
registerOnceWorkerEventHandler: ((event, handler) => void)

Registers once a worker event handler.

+

Type declaration

    • (event, handler): void
    • Parameters

      Returns void

registerWorkerEventHandler: ((event, handler) => void)

Registers a worker event handler.

+

Type declaration

    • (event, handler): void
    • Parameters

      Returns void

strategyData?: StrategyData

Worker choice strategy data. +This is used to store data that are specific to the worker choice strategy.

+
tasksQueueBackPressureSize: number

Tasks queue back pressure size. This is the number of tasks that can be enqueued before the worker node has back pressure.

-
-
-
- -
tasksQueueSize: (() => number)
-
-

Type declaration

-
    -
  • -
      -
    • (): number
    • -
    • -

      Tasks queue size.

      -
      -

      Returns number

      The tasks queue size.

      - -
-
- -
unshiftTask: ((task) => number)
-
-

Type declaration

-
    -
  • -
      -
    • (task): number
    • -
    • -

      Prepends a task to the tasks queue.

      -
      -
      -

      Parameters

      -
        -
      • -
        task: Task<Data>
        -

        The task to prepend.

        -
        -
      -

      Returns number

      The tasks queue size.

      - -
-
- - -

Worker usage statistics.

-
-
-
- -
worker: Worker
-

Worker.

-
-
-
-
-

Generated using TypeDoc

-
\ No newline at end of file +
tasksQueueSize: (() => number)

Tasks queue size.

+

Type declaration

    • (): number
    • Returns number

Returns

The tasks queue size.

+
terminate: (() => Promise<void>)

Terminates the worker node.

+

Type declaration

    • (): Promise<void>
    • Returns Promise<void>

Worker usage statistics.

+
worker: Worker

Worker.

+

Methods

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest ...args: AnyRest

    Returns void

  • Alias for emitter.on(eventName, listener).

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v0.1.26

    +
  • Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments +to each.

    +

    Returns true if the event had listeners, false otherwise.

    +
    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener +
    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol
    • Rest ...args: AnyRest

    Returns boolean

    Since

    v0.1.26

    +
  • Returns an array listing the events for which the emitter has registered +listeners. The values in the array are strings or Symbols.

    +
    import { EventEmitter } from 'node:events';

    const myEE = new EventEmitter();
    myEE.on('foo', () => {});
    myEE.on('bar', () => {});

    const sym = Symbol('symbol');
    myEE.on(sym, () => {});

    console.log(myEE.eventNames());
    // Prints: [ 'foo', 'bar', Symbol(symbol) ] +
    +

    Returns (string | symbol)[]

    Since

    v6.0.0

    +
  • Returns the current max listener value for the EventEmitter which is either +set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

    +

    Returns number

    Since

    v1.0.0

    +
  • Returns the number of listeners listening for the event named eventName. +If listener is provided, it will return how many times the listener is found +in the list of the listeners of the event.

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

      The name of the event being listened for

      +
    • Optional listener: Function

      The event handler function

      +

    Returns number

    Since

    v3.2.0

    +
  • Returns a copy of the array of listeners for the event named eventName.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    });
    console.log(util.inspect(server.listeners('connection')));
    // Prints: [ [Function] ] +
    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

    Returns Function[]

    Since

    v0.1.26

    +
  • Alias for emitter.removeListener().

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v10.0.0

    +
  • Adds the listener function to the end of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.on('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    import { EventEmitter } from 'node:events';
    const myEE = new EventEmitter();
    myEE.on('foo', () => console.log('a'));
    myEE.prependListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

      The name of the event.

      +
    • listener: ((...args) => void)

      The callback function

      +
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v0.1.101

    +
  • Adds a one-timelistener function for the event named eventName. The +next time eventName is triggered, this listener is removed and then invoked.

    +
    server.once('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the +event listener to the beginning of the listeners array.

    +
    import { EventEmitter } from 'node:events';
    const myEE = new EventEmitter();
    myEE.once('foo', () => console.log('a'));
    myEE.prependOnceListener('foo', () => console.log('b'));
    myEE.emit('foo');
    // Prints:
    // b
    // a +
    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

      The name of the event.

      +
    • listener: ((...args) => void)

      The callback function

      +
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v0.3.0

    +
  • Adds the listener function to the beginning of the listeners array for the +event named eventName. No checks are made to see if the listener has +already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple +times.

    +
    server.prependListener('connection', (stream) => {
    console.log('someone connected!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

      The name of the event.

      +
    • listener: ((...args) => void)

      The callback function

      +
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v6.0.0

    +
  • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +listener is removed, and then invoked.

    +
    server.prependOnceListener('connection', (stream) => {
    console.log('Ah, we have our first user!');
    }); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

      The name of the event.

      +
    • listener: ((...args) => void)

      The callback function

      +
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v6.0.0

    +
  • Returns a copy of the array of listeners for the event named eventName, +including any wrappers (such as those created by .once()).

    +
    import { EventEmitter } from 'node:events';
    const emitter = new EventEmitter();
    emitter.once('log', () => console.log('log once'));

    // Returns a new Array with a function `onceWrapper` which has a property
    // `listener` which contains the original listener bound above
    const listeners = emitter.rawListeners('log');
    const logFnWrapper = listeners[0];

    // Logs "log once" to the console and does not unbind the `once` event
    logFnWrapper.listener();

    // Logs "log once" to the console and removes the listener
    logFnWrapper();

    emitter.on('log', () => console.log('log persistently'));
    // Will return a new Array with a single function bound by `.on()` above
    const newListeners = emitter.rawListeners('log');

    // Logs "log persistently" twice
    newListeners[0]();
    emitter.emit('log'); +
    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol

    Returns Function[]

    Since

    v9.4.0

    +
  • Removes all listeners, or those of the specified eventName.

    +

    It is bad practice to remove listeners added elsewhere in the code, +particularly when the EventEmitter instance was created by some other +component or module (e.g. sockets or file streams).

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    Parameters

    • Optional eventName: string | symbol

    Returns this

    Since

    v0.1.26

    +
  • Removes the specified listener from the listener array for the event namedeventName.

    +
    const callback = (stream) => {
    console.log('someone connected!');
    };
    server.on('connection', callback);
    // ...
    server.removeListener('connection', callback); +
    +

    removeListener() will remove, at most, one instance of a listener from the +listener array. If any single listener has been added multiple times to the +listener array for the specified eventName, then removeListener() must be +called multiple times to remove each instance.

    +

    Once an event is emitted, all listeners attached to it at the +time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and before the last listener finishes execution +will not remove them fromemit() in progress. Subsequent events behave as expected.

    +
    import { EventEmitter } from 'node:events';
    class MyEmitter extends EventEmitter {}
    const myEmitter = new MyEmitter();

    const callbackA = () => {
    console.log('A');
    myEmitter.removeListener('event', callbackB);
    };

    const callbackB = () => {
    console.log('B');
    };

    myEmitter.on('event', callbackA);

    myEmitter.on('event', callbackB);

    // callbackA removes listener callbackB but it will still be called.
    // Internal listener array at time of emit [callbackA, callbackB]
    myEmitter.emit('event');
    // Prints:
    // A
    // B

    // callbackB is now removed.
    // Internal listener array [callbackA]
    myEmitter.emit('event');
    // Prints:
    // A +
    +

    Because listeners are managed using an internal array, calling this will +change the position indices of any listener registered after the listener +being removed. This will not impact the order in which listeners are called, +but it means that any copies of the listener array as returned by +the emitter.listeners() method will need to be recreated.

    +

    When a single function has been added as a handler multiple times for a single +event (as in the example below), removeListener() will remove the most +recently added instance. In the example the once('ping')listener is removed:

    +
    import { EventEmitter } from 'node:events';
    const ee = new EventEmitter();

    function pong() {
    console.log('pong');
    }

    ee.on('ping', pong);
    ee.once('ping', pong);
    ee.removeListener('ping', pong);

    ee.emit('ping');
    ee.emit('ping'); +
    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    Type Parameters

    • K

    Parameters

    • eventName: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

    Since

    v0.1.26

    +
  • By default EventEmitters will print a warning if more than 10 listeners are +added for a particular event. This is a useful default that helps finding +memory leaks. The emitter.setMaxListeners() method allows the limit to be +modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

    +

    Returns a reference to the EventEmitter, so that calls can be chained.

    +

    Parameters

    • n: number

    Returns this

    Since

    v0.3.5

    +
\ No newline at end of file