} from '../utils'
import { Deque } from '../deque'
import {
- type BackPressureCallback,
- type EmptyQueueCallback,
type IWorker,
type IWorkerNode,
type WorkerInfo,
+ type WorkerNodeEventCallback,
type WorkerType,
WorkerTypes,
type WorkerUsage
/** @inheritdoc */
public tasksQueueBackPressureSize: number
/** @inheritdoc */
- public onBackPressure?: BackPressureCallback
+ public onBackPressure?: WorkerNodeEventCallback
/** @inheritdoc */
- public onEmptyQueue?: EmptyQueueCallback
+ public onEmptyQueue?: WorkerNodeEventCallback
private readonly tasksQueue: Deque<Task<Data>>
private onEmptyQueueCount: number
private readonly taskFunctionsUsage: Map<string, WorkerUsage>
this.onEmptyQueueCount = 0
return
}
- (this.onEmptyQueue as EmptyQueueCallback)(this.info.id as number)
+ (this.onEmptyQueue as WorkerNodeEventCallback)(this.info.id as number)
++this.onEmptyQueueCount
await sleep(exponentialDelay(this.onEmptyQueueCount))
await this.startOnEmptyQueue()