feat: implement k-priority queue
[poolifier.git] / src / pools / worker-node.ts
index 99f4ab2006734ce5fce3a82df59a436115c3fc7a..e7fbe0e83cc9d74fae0ccfd8338870fb8e0c2907 100644 (file)
@@ -3,6 +3,7 @@ import { MessageChannel } from 'node:worker_threads'
 
 import { CircularArray } from '../circular-array.js'
 import { Deque } from '../deque.js'
+import { PriorityQueue } from '../priority-queue.js'
 import type { Task } from '../utility-types.js'
 import { DEFAULT_TASK_NAME } from '../utils.js'
 import {
@@ -45,6 +46,7 @@ export class WorkerNode<Worker extends IWorker, Data = unknown>
   /** @inheritdoc */
   public tasksQueueBackPressureSize: number
   private readonly tasksQueue: Deque<Task<Data>>
+  private readonly tasksQueue2 = new PriorityQueue<Task<Data>>()
   private onBackPressureStarted: boolean
   private readonly taskFunctionsUsage: Map<string, WorkerUsage>