@@ -22,10 +22,6 @@ export interface BullQueueConfig {
22
22
retryAttempts ?: number ;
23
23
}
24
24
25
- interface BullWorker extends Closeable {
26
- get worker ( ) : Worker ;
27
- }
28
-
29
25
/**
30
26
* TaskQueue implementation for BullMQ
31
27
*/
@@ -36,10 +32,6 @@ export class BullQueue
36
32
{
37
33
private activePromise ?: Promise < void > ;
38
34
39
- private activeWorkers : Record < string , BullWorker > = { } ;
40
-
41
- private activeJobs = 0 ;
42
-
43
35
public createWorker (
44
36
name : string ,
45
37
executor : ( data : TaskPayload ) => Promise < TaskPayload > ,
@@ -52,7 +44,6 @@ export class BullQueue
52
44
// This is by far not optimal - since it still picks up 1 task per queue but waits until
53
45
// computing them, so that leads to bad performance over multiple workers.
54
46
// For that we need to restructure tasks to be flowing through a single queue however
55
- this . activeJobs += 1 ;
56
47
57
48
// TODO Use worker.pause()
58
49
while ( this . activePromise !== undefined ) {
@@ -65,27 +56,10 @@ export class BullQueue
65
56
} ) ;
66
57
this . activePromise = promise ;
67
58
68
- // Pause all other workers
69
- const workersToPause = Object . entries ( this . activeWorkers ) . filter (
70
- ( [ key ] ) => key !== name
71
- ) ;
72
- await Promise . all (
73
- workersToPause . map ( ( [ , workerToPause ] ) =>
74
- workerToPause . worker . pause ( true )
75
- )
76
- ) ;
77
-
78
59
const result = await executor ( job . data ) ;
79
60
this . activePromise = undefined ;
80
61
void resOutside ( ) ;
81
62
82
- this . activeJobs -= 1 ;
83
- if ( this . activeJobs === 0 ) {
84
- Object . entries ( this . activeWorkers ) . forEach ( ( [ , resumingWorker ] ) =>
85
- resumingWorker . worker . resume ( )
86
- ) ;
87
- }
88
-
89
63
return result ;
90
64
} ,
91
65
{
@@ -104,16 +78,11 @@ export class BullQueue
104
78
log . error ( error ) ;
105
79
} ) ;
106
80
107
- const instantiatedWorker = {
81
+ return {
108
82
async close ( ) {
109
83
await worker . close ( ) ;
110
84
} ,
111
- get worker ( ) {
112
- return worker ;
113
- } ,
114
85
} ;
115
- this . activeWorkers [ name ] = instantiatedWorker ;
116
- return instantiatedWorker ;
117
86
}
118
87
119
88
public async getQueue ( queueName : string ) : Promise < InstantiatedQueue > {
0 commit comments