- const tasksQueueSize = this.tasksQueue.push(task)
- if (this.hasBackPressure() && !this.onBackPressureStarted) {
- this.onBackPressureStarted = true
- this.dispatchEvent(
- new CustomEvent<WorkerNodeEventDetail>('backpressure', {
- detail: { workerId: this.info.id as number }
- })
- )
- this.onBackPressureStarted = false
- }
- return tasksQueueSize
- }
-
- /** @inheritdoc */
- public unshiftTask (task: Task<Data>): number {
- const tasksQueueSize = this.tasksQueue.unshift(task)
- if (this.hasBackPressure() && !this.onBackPressureStarted) {
- this.onBackPressureStarted = true
- this.dispatchEvent(
- new CustomEvent<WorkerNodeEventDetail>('backpressure', {
- detail: { workerId: this.info.id as number }
- })
- )
- this.onBackPressureStarted = false
+ const tasksQueueSize = this.tasksQueue.enqueue(task, task.priority)
+ if (
+ !this.setBackPressureFlag &&
+ this.hasBackPressure() &&
+ !this.info.backPressure
+ ) {
+ this.setBackPressureFlag = true
+ this.info.backPressure = true
+ this.emit('backPressure', { workerId: this.info.id })
+ this.setBackPressureFlag = false