bullmq 3.5.5 → 3.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/classes/worker.js +11 -4
  2. package/dist/cjs/classes/worker.js.map +1 -1
  3. package/dist/cjs/commands/addJob-8.lua +2 -7
  4. package/dist/cjs/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  5. package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +2 -6
  6. package/dist/cjs/commands/moveToActive-9.lua +1 -1
  7. package/dist/cjs/commands/moveToDelayed-8.lua +6 -9
  8. package/dist/cjs/interfaces/minimal-job.d.ts +18 -0
  9. package/dist/cjs/scripts/addJob-8.js +27 -26
  10. package/dist/cjs/scripts/addJob-8.js.map +1 -1
  11. package/dist/cjs/scripts/moveToActive-9.js +1 -1
  12. package/dist/cjs/scripts/moveToDelayed-8.js +39 -32
  13. package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -1
  14. package/dist/cjs/scripts/moveToFinished-12.js +13 -6
  15. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -1
  16. package/dist/esm/classes/worker.js +11 -4
  17. package/dist/esm/classes/worker.js.map +1 -1
  18. package/dist/esm/commands/addJob-8.lua +2 -7
  19. package/dist/esm/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  20. package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +2 -6
  21. package/dist/esm/commands/moveToActive-9.lua +1 -1
  22. package/dist/esm/commands/moveToDelayed-8.lua +6 -9
  23. package/dist/esm/interfaces/minimal-job.d.ts +18 -0
  24. package/dist/esm/scripts/addJob-8.js +27 -26
  25. package/dist/esm/scripts/addJob-8.js.map +1 -1
  26. package/dist/esm/scripts/moveToActive-9.js +1 -1
  27. package/dist/esm/scripts/moveToDelayed-8.js +39 -32
  28. package/dist/esm/scripts/moveToDelayed-8.js.map +1 -1
  29. package/dist/esm/scripts/moveToFinished-12.js +13 -6
  30. package/dist/esm/scripts/moveToFinished-12.js.map +1 -1
  31. package/package.json +1 -1
@@ -142,8 +142,11 @@ class Worker extends queue_base_1.QueueBase {
142
142
  if (!this.waiting &&
143
143
  processing.size < this.opts.concurrency &&
144
144
  (!this.limitUntil || processing.size == 0)) {
145
- const token = `${this.id}:${tokenPostfix++}`;
146
- processing.set(this.retryIfFailed(() => this.getNextJob(token), this.opts.runRetryDelay), token);
145
+ const restProcesses = this.opts.concurrency - processing.size;
146
+ for (let i = 0; i < restProcesses; i++) {
147
+ const token = `${this.id}:${tokenPostfix++}`;
148
+ processing.set(this.retryIfFailed(() => this.getNextJob(token), this.opts.runRetryDelay), token);
149
+ }
147
150
  }
148
151
  /*
149
152
  * Get the first promise that completes
@@ -224,7 +227,8 @@ class Worker extends queue_base_1.QueueBase {
224
227
  // If we get the special delayed job ID, we pick the delay as the next
225
228
  // block timeout.
226
229
  if (jobId && jobId.startsWith('0:')) {
227
- this.blockTimeout = parseInt(jobId.split(':')[1]);
230
+ const expectedBlockTimeout = parseInt(jobId.split(':')[1]) - Date.now();
231
+ this.blockTimeout = expectedBlockTimeout > 0 ? expectedBlockTimeout : 1;
228
232
  }
229
233
  const [jobData, id, limitUntil, delayUntil] = await this.scripts.moveToActive(token, jobId);
230
234
  return this.nextJobFromJobData(jobData, id, limitUntil, delayUntil);
@@ -276,7 +280,10 @@ class Worker extends queue_base_1.QueueBase {
276
280
  }
277
281
  }
278
282
  this.limitUntil = Math.max(limitUntil, 0) || 0;
279
- this.blockTimeout = delayUntil;
283
+ if (delayUntil) {
284
+ const expectedBlockTimeout = Math.max(delayUntil, 0) - Date.now();
285
+ this.blockTimeout = expectedBlockTimeout > 0 ? expectedBlockTimeout : 1;
286
+ }
280
287
  if (jobData) {
281
288
  this.drained = false;
282
289
  const job = this.createJob(jobData, jobId);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ local parent = args[8]
57
57
  local parentData
58
58
 
59
59
  -- Includes
60
+ --- @include "includes/addDelayMarkerIfNeeded"
60
61
  --- @include "includes/addJobWithPriority"
61
62
  --- @include "includes/getTargetQueueList"
62
63
  --- @include "includes/trimEvents"
@@ -142,13 +143,7 @@ elseif (delayedTimestamp ~= 0) then
142
143
  -- If wait list is empty, and this delayed job is the next one to be processed,
143
144
  -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
144
145
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
145
- if rcall("LLEN", target) == 0 then
146
- local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
147
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
148
- local delay = delayedTimestamp - tonumber(timestamp)
149
- rcall("LPUSH", target, "0:" .. delay)
150
- end
151
- end
146
+ addDelayMarkerIfNeeded(target, KEYS[5])
152
147
  else
153
148
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
154
149
 
@@ -0,0 +1,15 @@
1
+ --[[
2
+ Add delay marker if needed.
3
+ ]]
4
+
5
+ -- Includes
6
+ --- @include "getNextDelayedTimestamp"
7
+
8
+ local function addDelayMarkerIfNeeded(target, delayedKey)
9
+ if rcall("LLEN", target) == 0 then
10
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
11
+ if nextTimestamp ~= nil then
12
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
13
+ end
14
+ end
15
+ end
@@ -3,6 +3,7 @@
3
3
  ]]
4
4
 
5
5
  -- Includes
6
+ --- @include "addDelayMarkerIfNeeded"
6
7
  --- @include "addJobWithPriority"
7
8
  --- @include "getNextDelayedTimestamp"
8
9
  --- @include "getTargetQueueList"
@@ -25,12 +26,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
25
26
  local parentDelayedKey = parentQueueKey .. ":delayed"
26
27
  rcall("ZADD", parentDelayedKey, score, parentId)
27
28
 
28
- if rcall("LLEN", parentTarget) == 0 then
29
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
30
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
31
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
32
- end
33
- end
29
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
34
30
  -- Standard or priority add
35
31
  elseif priority == 0 then
36
32
  rcall("RPUSH", parentTarget, parentId)
@@ -78,5 +78,5 @@ end
78
78
  -- Return the timestamp for the next delayed job if any.
79
79
  local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
80
80
  if (nextTimestamp ~= nil) then
81
- return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
81
+ return { 0, 0, 0, nextTimestamp}
82
82
  end
@@ -28,9 +28,10 @@
28
28
  local rcall = redis.call
29
29
 
30
30
  -- Includes
31
- --- @include "includes/promoteDelayedJobs"
31
+ --- @include "includes/addDelayMarkerIfNeeded"
32
32
  --- @include "includes/getTargetQueueList"
33
33
  --- @include "includes/getNextDelayedTimestamp"
34
+ --- @include "includes/promoteDelayedJobs"
34
35
 
35
36
  local jobKey = KEYS[5]
36
37
  if rcall("EXISTS", jobKey) == 1 then
@@ -54,17 +55,13 @@ if rcall("EXISTS", jobKey) == 1 then
54
55
  return -3
55
56
  end
56
57
 
58
+ rcall("ZADD", delayedKey, score, jobId)
59
+ rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
60
+
57
61
  -- Check if we need to push a marker job to wake up sleeping workers.
58
62
  local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
59
- if rcall("LLEN", target) == 0 then
60
- local nextTimestamp = getNextDelayedTimestamp(delayedKey)
61
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
62
- rcall("LPUSH", target, "0:" .. delayedTimestamp - tonumber(ARGV[2]))
63
- end
64
- end
63
+ addDelayMarkerIfNeeded(target, delayedKey)
65
64
 
66
- rcall("ZADD", delayedKey, score, jobId)
67
- rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
68
65
  return 0
69
66
  else
70
67
  return -1
@@ -98,6 +98,24 @@ export interface MinimalJob<DataType = any, ReturnType = any, NameType extends s
98
98
  * @returns
99
99
  */
100
100
  asJSONSandbox(): JobJsonSandbox;
101
+ /**
102
+ * Updates a job's data
103
+ *
104
+ * @param data - the data that will replace the current jobs data.
105
+ */
106
+ update(data: DataType): Promise<void>;
107
+ /**
108
+ * Updates a job's progress
109
+ *
110
+ * @param progress - number or object to be saved as progress.
111
+ */
112
+ updateProgress(progress: number | object): Promise<void>;
113
+ /**
114
+ * Logs one row of log data.
115
+ *
116
+ * @param logRow - string with log data to be logged.
117
+ */
118
+ log(logRow: string): Promise<number>;
101
119
  get queueName(): string;
102
120
  /**
103
121
  * @returns the prefix that is used.
@@ -51,6 +51,31 @@ local repeatJobKey = args[9]
51
51
  local parent = args[8]
52
52
  local parentData
53
53
  -- Includes
54
+ --[[
55
+ Add delay marker if needed.
56
+ ]]
57
+ -- Includes
58
+ --[[
59
+ Function to return the next delayed job timestamp.
60
+ ]]
61
+ local function getNextDelayedTimestamp(delayedKey)
62
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
63
+ if #result then
64
+ local nextTimestamp = tonumber(result[2])
65
+ if (nextTimestamp ~= nil) then
66
+ nextTimestamp = nextTimestamp / 0x1000
67
+ end
68
+ return nextTimestamp
69
+ end
70
+ end
71
+ local function addDelayMarkerIfNeeded(target, delayedKey)
72
+ if rcall("LLEN", target) == 0 then
73
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
74
+ if nextTimestamp ~= nil then
75
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
76
+ end
77
+ end
78
+ end
54
79
  --[[
55
80
  Function to add job considering priority.
56
81
  ]]
@@ -87,19 +112,6 @@ local function trimEvents(metaKey, eventStreamKey)
87
112
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
88
113
  end
89
114
  end
90
- --[[
91
- Function to return the next delayed job timestamp.
92
- ]]
93
- local function getNextDelayedTimestamp(delayedKey)
94
- local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
95
- if #result then
96
- local nextTimestamp = tonumber(result[2])
97
- if (nextTimestamp ~= nil) then
98
- nextTimestamp = nextTimestamp / 0x1000
99
- end
100
- return nextTimestamp
101
- end
102
- end
103
115
  --[[
104
116
  Validate and move or add dependencies to parent.
105
117
  ]]
@@ -121,12 +133,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
121
133
  local score = delayedTimestamp * 0x1000
122
134
  local parentDelayedKey = parentQueueKey .. ":delayed"
123
135
  rcall("ZADD", parentDelayedKey, score, parentId)
124
- if rcall("LLEN", parentTarget) == 0 then
125
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
126
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
127
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
128
- end
129
- end
136
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
130
137
  -- Standard or priority add
131
138
  elseif priority == 0 then
132
139
  rcall("RPUSH", parentTarget, parentId)
@@ -203,13 +210,7 @@ elseif (delayedTimestamp ~= 0) then
203
210
  -- If wait list is empty, and this delayed job is the next one to be processed,
204
211
  -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
205
212
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
206
- if rcall("LLEN", target) == 0 then
207
- local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
208
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
209
- local delay = delayedTimestamp - tonumber(timestamp)
210
- rcall("LPUSH", target, "0:" .. delay)
211
- end
212
- end
213
+ addDelayMarkerIfNeeded(target, KEYS[5])
213
214
  else
214
215
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
215
216
  -- Standard or priority add
@@ -1 +1 @@
1
- {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsOf,CAAC;AACW,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuOf,CAAC;AACW,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -199,7 +199,7 @@ end
199
199
  -- Return the timestamp for the next delayed job if any.
200
200
  local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
201
201
  if (nextTimestamp ~= nil) then
202
- return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
202
+ return { 0, 0, 0, nextTimestamp}
203
203
  end
204
204
  `;
205
205
  exports.moveToActive = {
@@ -26,6 +26,42 @@ const content = `--[[
26
26
  ]]
27
27
  local rcall = redis.call
28
28
  -- Includes
29
+ --[[
30
+ Add delay marker if needed.
31
+ ]]
32
+ -- Includes
33
+ --[[
34
+ Function to return the next delayed job timestamp.
35
+ ]]
36
+ local function getNextDelayedTimestamp(delayedKey)
37
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
38
+ if #result then
39
+ local nextTimestamp = tonumber(result[2])
40
+ if (nextTimestamp ~= nil) then
41
+ nextTimestamp = nextTimestamp / 0x1000
42
+ end
43
+ return nextTimestamp
44
+ end
45
+ end
46
+ local function addDelayMarkerIfNeeded(target, delayedKey)
47
+ if rcall("LLEN", target) == 0 then
48
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
49
+ if nextTimestamp ~= nil then
50
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
51
+ end
52
+ end
53
+ end
54
+ --[[
55
+ Function to check for the meta.paused key to decide if we are paused or not
56
+ (since an empty list and !EXISTS are not really the same).
57
+ ]]
58
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
59
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
60
+ return waitKey
61
+ else
62
+ return pausedKey
63
+ end
64
+ end
29
65
  --[[
30
66
  Updates the delay set, by moving delayed jobs that should
31
67
  be processed now to "wait".
@@ -48,17 +84,6 @@ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
48
84
  rcall("RPUSH", targetKey, jobId)
49
85
  end
50
86
  end
51
- --[[
52
- Function to check for the meta.paused key to decide if we are paused or not
53
- (since an empty list and !EXISTS are not really the same).
54
- ]]
55
- local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
56
- if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
57
- return waitKey
58
- else
59
- return pausedKey
60
- end
61
- end
62
87
  -- Try to get as much as 1000 jobs at once
63
88
  local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
64
89
  metaKey, eventStreamKey, prefix, timestamp)
@@ -83,19 +108,6 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
83
108
  end
84
109
  end
85
110
  end
86
- --[[
87
- Function to return the next delayed job timestamp.
88
- ]]
89
- local function getNextDelayedTimestamp(delayedKey)
90
- local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
91
- if #result then
92
- local nextTimestamp = tonumber(result[2])
93
- if (nextTimestamp ~= nil) then
94
- nextTimestamp = nextTimestamp / 0x1000
95
- end
96
- return nextTimestamp
97
- end
98
- end
99
111
  local jobKey = KEYS[5]
100
112
  if rcall("EXISTS", jobKey) == 1 then
101
113
  local delayedKey = KEYS[4]
@@ -114,16 +126,11 @@ if rcall("EXISTS", jobKey) == 1 then
114
126
  if (numRemovedElements < 1) then
115
127
  return -3
116
128
  end
117
- -- Check if we need to push a marker job to wake up sleeping workers.
118
- local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
119
- if rcall("LLEN", target) == 0 then
120
- local nextTimestamp = getNextDelayedTimestamp(delayedKey)
121
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
122
- rcall("LPUSH", target, "0:" .. delayedTimestamp - tonumber(ARGV[2]))
123
- end
124
- end
125
129
  rcall("ZADD", delayedKey, score, jobId)
126
130
  rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
131
+ -- Check if we need to push a marker job to wake up sleeping workers.
132
+ local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
133
+ addDelayMarkerIfNeeded(target, delayedKey)
127
134
  return 0
128
135
  else
129
136
  return -1
@@ -1 +1 @@
1
- {"version":3,"file":"moveToDelayed-8.js","sourceRoot":"","sources":["../../../src/scripts/moveToDelayed-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Hf,CAAC;AACW,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"moveToDelayed-8.js","sourceRoot":"","sources":["../../../src/scripts/moveToDelayed-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsIf,CAAC;AACW,QAAA,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -379,6 +379,18 @@ end
379
379
  Validate and move or add dependencies to parent.
380
380
  ]]
381
381
  -- Includes
382
+ --[[
383
+ Add delay marker if needed.
384
+ ]]
385
+ -- Includes
386
+ local function addDelayMarkerIfNeeded(target, delayedKey)
387
+ if rcall("LLEN", target) == 0 then
388
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
389
+ if nextTimestamp ~= nil then
390
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
391
+ end
392
+ end
393
+ end
382
394
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
383
395
  parentId, jobIdKey, returnvalue, timestamp )
384
396
  local processedSet = parentKey .. ":processed"
@@ -396,12 +408,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
396
408
  local score = delayedTimestamp * 0x1000
397
409
  local parentDelayedKey = parentQueueKey .. ":delayed"
398
410
  rcall("ZADD", parentDelayedKey, score, parentId)
399
- if rcall("LLEN", parentTarget) == 0 then
400
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
401
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
402
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
403
- end
404
- end
411
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
405
412
  -- Standard or priority add
406
413
  elseif priority == 0 then
407
414
  rcall("RPUSH", parentTarget, parentId)
@@ -1 +1 @@
1
- {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8iBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqjBf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -139,8 +139,11 @@ export class Worker extends QueueBase {
139
139
  if (!this.waiting &&
140
140
  processing.size < this.opts.concurrency &&
141
141
  (!this.limitUntil || processing.size == 0)) {
142
- const token = `${this.id}:${tokenPostfix++}`;
143
- processing.set(this.retryIfFailed(() => this.getNextJob(token), this.opts.runRetryDelay), token);
142
+ const restProcesses = this.opts.concurrency - processing.size;
143
+ for (let i = 0; i < restProcesses; i++) {
144
+ const token = `${this.id}:${tokenPostfix++}`;
145
+ processing.set(this.retryIfFailed(() => this.getNextJob(token), this.opts.runRetryDelay), token);
146
+ }
144
147
  }
145
148
  /*
146
149
  * Get the first promise that completes
@@ -221,7 +224,8 @@ export class Worker extends QueueBase {
221
224
  // If we get the special delayed job ID, we pick the delay as the next
222
225
  // block timeout.
223
226
  if (jobId && jobId.startsWith('0:')) {
224
- this.blockTimeout = parseInt(jobId.split(':')[1]);
227
+ const expectedBlockTimeout = parseInt(jobId.split(':')[1]) - Date.now();
228
+ this.blockTimeout = expectedBlockTimeout > 0 ? expectedBlockTimeout : 1;
225
229
  }
226
230
  const [jobData, id, limitUntil, delayUntil] = await this.scripts.moveToActive(token, jobId);
227
231
  return this.nextJobFromJobData(jobData, id, limitUntil, delayUntil);
@@ -273,7 +277,10 @@ export class Worker extends QueueBase {
273
277
  }
274
278
  }
275
279
  this.limitUntil = Math.max(limitUntil, 0) || 0;
276
- this.blockTimeout = delayUntil;
280
+ if (delayUntil) {
281
+ const expectedBlockTimeout = Math.max(delayUntil, 0) - Date.now();
282
+ this.blockTimeout = expectedBlockTimeout > 0 ? expectedBlockTimeout : 1;
283
+ }
277
284
  if (jobData) {
278
285
  this.drained = false;
279
286
  const job = this.createJob(jobData, jobId);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/classes/worker.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ local parent = args[8]
57
57
  local parentData
58
58
 
59
59
  -- Includes
60
+ --- @include "includes/addDelayMarkerIfNeeded"
60
61
  --- @include "includes/addJobWithPriority"
61
62
  --- @include "includes/getTargetQueueList"
62
63
  --- @include "includes/trimEvents"
@@ -142,13 +143,7 @@ elseif (delayedTimestamp ~= 0) then
142
143
  -- If wait list is empty, and this delayed job is the next one to be processed,
143
144
  -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
144
145
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
145
- if rcall("LLEN", target) == 0 then
146
- local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
147
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
148
- local delay = delayedTimestamp - tonumber(timestamp)
149
- rcall("LPUSH", target, "0:" .. delay)
150
- end
151
- end
146
+ addDelayMarkerIfNeeded(target, KEYS[5])
152
147
  else
153
148
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
154
149
 
@@ -0,0 +1,15 @@
1
+ --[[
2
+ Add delay marker if needed.
3
+ ]]
4
+
5
+ -- Includes
6
+ --- @include "getNextDelayedTimestamp"
7
+
8
+ local function addDelayMarkerIfNeeded(target, delayedKey)
9
+ if rcall("LLEN", target) == 0 then
10
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
11
+ if nextTimestamp ~= nil then
12
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
13
+ end
14
+ end
15
+ end
@@ -3,6 +3,7 @@
3
3
  ]]
4
4
 
5
5
  -- Includes
6
+ --- @include "addDelayMarkerIfNeeded"
6
7
  --- @include "addJobWithPriority"
7
8
  --- @include "getNextDelayedTimestamp"
8
9
  --- @include "getTargetQueueList"
@@ -25,12 +26,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
25
26
  local parentDelayedKey = parentQueueKey .. ":delayed"
26
27
  rcall("ZADD", parentDelayedKey, score, parentId)
27
28
 
28
- if rcall("LLEN", parentTarget) == 0 then
29
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
30
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
31
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
32
- end
33
- end
29
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
34
30
  -- Standard or priority add
35
31
  elseif priority == 0 then
36
32
  rcall("RPUSH", parentTarget, parentId)
@@ -78,5 +78,5 @@ end
78
78
  -- Return the timestamp for the next delayed job if any.
79
79
  local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
80
80
  if (nextTimestamp ~= nil) then
81
- return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
81
+ return { 0, 0, 0, nextTimestamp}
82
82
  end
@@ -28,9 +28,10 @@
28
28
  local rcall = redis.call
29
29
 
30
30
  -- Includes
31
- --- @include "includes/promoteDelayedJobs"
31
+ --- @include "includes/addDelayMarkerIfNeeded"
32
32
  --- @include "includes/getTargetQueueList"
33
33
  --- @include "includes/getNextDelayedTimestamp"
34
+ --- @include "includes/promoteDelayedJobs"
34
35
 
35
36
  local jobKey = KEYS[5]
36
37
  if rcall("EXISTS", jobKey) == 1 then
@@ -54,17 +55,13 @@ if rcall("EXISTS", jobKey) == 1 then
54
55
  return -3
55
56
  end
56
57
 
58
+ rcall("ZADD", delayedKey, score, jobId)
59
+ rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
60
+
57
61
  -- Check if we need to push a marker job to wake up sleeping workers.
58
62
  local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
59
- if rcall("LLEN", target) == 0 then
60
- local nextTimestamp = getNextDelayedTimestamp(delayedKey)
61
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
62
- rcall("LPUSH", target, "0:" .. delayedTimestamp - tonumber(ARGV[2]))
63
- end
64
- end
63
+ addDelayMarkerIfNeeded(target, delayedKey)
65
64
 
66
- rcall("ZADD", delayedKey, score, jobId)
67
- rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
68
65
  return 0
69
66
  else
70
67
  return -1
@@ -98,6 +98,24 @@ export interface MinimalJob<DataType = any, ReturnType = any, NameType extends s
98
98
  * @returns
99
99
  */
100
100
  asJSONSandbox(): JobJsonSandbox;
101
+ /**
102
+ * Updates a job's data
103
+ *
104
+ * @param data - the data that will replace the current jobs data.
105
+ */
106
+ update(data: DataType): Promise<void>;
107
+ /**
108
+ * Updates a job's progress
109
+ *
110
+ * @param progress - number or object to be saved as progress.
111
+ */
112
+ updateProgress(progress: number | object): Promise<void>;
113
+ /**
114
+ * Logs one row of log data.
115
+ *
116
+ * @param logRow - string with log data to be logged.
117
+ */
118
+ log(logRow: string): Promise<number>;
101
119
  get queueName(): string;
102
120
  /**
103
121
  * @returns the prefix that is used.
@@ -48,6 +48,31 @@ local repeatJobKey = args[9]
48
48
  local parent = args[8]
49
49
  local parentData
50
50
  -- Includes
51
+ --[[
52
+ Add delay marker if needed.
53
+ ]]
54
+ -- Includes
55
+ --[[
56
+ Function to return the next delayed job timestamp.
57
+ ]]
58
+ local function getNextDelayedTimestamp(delayedKey)
59
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
60
+ if #result then
61
+ local nextTimestamp = tonumber(result[2])
62
+ if (nextTimestamp ~= nil) then
63
+ nextTimestamp = nextTimestamp / 0x1000
64
+ end
65
+ return nextTimestamp
66
+ end
67
+ end
68
+ local function addDelayMarkerIfNeeded(target, delayedKey)
69
+ if rcall("LLEN", target) == 0 then
70
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
71
+ if nextTimestamp ~= nil then
72
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
73
+ end
74
+ end
75
+ end
51
76
  --[[
52
77
  Function to add job considering priority.
53
78
  ]]
@@ -84,19 +109,6 @@ local function trimEvents(metaKey, eventStreamKey)
84
109
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
85
110
  end
86
111
  end
87
- --[[
88
- Function to return the next delayed job timestamp.
89
- ]]
90
- local function getNextDelayedTimestamp(delayedKey)
91
- local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
92
- if #result then
93
- local nextTimestamp = tonumber(result[2])
94
- if (nextTimestamp ~= nil) then
95
- nextTimestamp = nextTimestamp / 0x1000
96
- end
97
- return nextTimestamp
98
- end
99
- end
100
112
  --[[
101
113
  Validate and move or add dependencies to parent.
102
114
  ]]
@@ -118,12 +130,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
118
130
  local score = delayedTimestamp * 0x1000
119
131
  local parentDelayedKey = parentQueueKey .. ":delayed"
120
132
  rcall("ZADD", parentDelayedKey, score, parentId)
121
- if rcall("LLEN", parentTarget) == 0 then
122
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
123
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
124
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
125
- end
126
- end
133
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
127
134
  -- Standard or priority add
128
135
  elseif priority == 0 then
129
136
  rcall("RPUSH", parentTarget, parentId)
@@ -200,13 +207,7 @@ elseif (delayedTimestamp ~= 0) then
200
207
  -- If wait list is empty, and this delayed job is the next one to be processed,
201
208
  -- then we need to signal the workers by adding a dummy job (jobId 0:delay) to the wait list.
202
209
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
203
- if rcall("LLEN", target) == 0 then
204
- local nextTimestamp = getNextDelayedTimestamp(KEYS[5])
205
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
206
- local delay = delayedTimestamp - tonumber(timestamp)
207
- rcall("LPUSH", target, "0:" .. delay)
208
- end
209
- end
210
+ addDelayMarkerIfNeeded(target, KEYS[5])
210
211
  else
211
212
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
212
213
  -- Standard or priority add
@@ -1 +1 @@
1
- {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsOf,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuOf,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -196,7 +196,7 @@ end
196
196
  -- Return the timestamp for the next delayed job if any.
197
197
  local nextTimestamp = getNextDelayedTimestamp(KEYS[7])
198
198
  if (nextTimestamp ~= nil) then
199
- return { 0, 0, 0, nextTimestamp - tonumber(ARGV[2])}
199
+ return { 0, 0, 0, nextTimestamp}
200
200
  end
201
201
  `;
202
202
  export const moveToActive = {
@@ -23,6 +23,42 @@ const content = `--[[
23
23
  ]]
24
24
  local rcall = redis.call
25
25
  -- Includes
26
+ --[[
27
+ Add delay marker if needed.
28
+ ]]
29
+ -- Includes
30
+ --[[
31
+ Function to return the next delayed job timestamp.
32
+ ]]
33
+ local function getNextDelayedTimestamp(delayedKey)
34
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
35
+ if #result then
36
+ local nextTimestamp = tonumber(result[2])
37
+ if (nextTimestamp ~= nil) then
38
+ nextTimestamp = nextTimestamp / 0x1000
39
+ end
40
+ return nextTimestamp
41
+ end
42
+ end
43
+ local function addDelayMarkerIfNeeded(target, delayedKey)
44
+ if rcall("LLEN", target) == 0 then
45
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
46
+ if nextTimestamp ~= nil then
47
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
48
+ end
49
+ end
50
+ end
51
+ --[[
52
+ Function to check for the meta.paused key to decide if we are paused or not
53
+ (since an empty list and !EXISTS are not really the same).
54
+ ]]
55
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
56
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
57
+ return waitKey
58
+ else
59
+ return pausedKey
60
+ end
61
+ end
26
62
  --[[
27
63
  Updates the delay set, by moving delayed jobs that should
28
64
  be processed now to "wait".
@@ -45,17 +81,6 @@ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
45
81
  rcall("RPUSH", targetKey, jobId)
46
82
  end
47
83
  end
48
- --[[
49
- Function to check for the meta.paused key to decide if we are paused or not
50
- (since an empty list and !EXISTS are not really the same).
51
- ]]
52
- local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
53
- if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
54
- return waitKey
55
- else
56
- return pausedKey
57
- end
58
- end
59
84
  -- Try to get as much as 1000 jobs at once
60
85
  local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
61
86
  metaKey, eventStreamKey, prefix, timestamp)
@@ -80,19 +105,6 @@ local function promoteDelayedJobs(delayedKey, waitKey, priorityKey, pausedKey,
80
105
  end
81
106
  end
82
107
  end
83
- --[[
84
- Function to return the next delayed job timestamp.
85
- ]]
86
- local function getNextDelayedTimestamp(delayedKey)
87
- local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
88
- if #result then
89
- local nextTimestamp = tonumber(result[2])
90
- if (nextTimestamp ~= nil) then
91
- nextTimestamp = nextTimestamp / 0x1000
92
- end
93
- return nextTimestamp
94
- end
95
- end
96
108
  local jobKey = KEYS[5]
97
109
  if rcall("EXISTS", jobKey) == 1 then
98
110
  local delayedKey = KEYS[4]
@@ -111,16 +123,11 @@ if rcall("EXISTS", jobKey) == 1 then
111
123
  if (numRemovedElements < 1) then
112
124
  return -3
113
125
  end
114
- -- Check if we need to push a marker job to wake up sleeping workers.
115
- local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
116
- if rcall("LLEN", target) == 0 then
117
- local nextTimestamp = getNextDelayedTimestamp(delayedKey)
118
- if not nextTimestamp or (delayedTimestamp < nextTimestamp) then
119
- rcall("LPUSH", target, "0:" .. delayedTimestamp - tonumber(ARGV[2]))
120
- end
121
- end
122
126
  rcall("ZADD", delayedKey, score, jobId)
123
127
  rcall("XADD", KEYS[6], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp)
128
+ -- Check if we need to push a marker job to wake up sleeping workers.
129
+ local target = getTargetQueueList(KEYS[8], KEYS[1], KEYS[7])
130
+ addDelayMarkerIfNeeded(target, delayedKey)
124
131
  return 0
125
132
  else
126
133
  return -1
@@ -1 +1 @@
1
- {"version":3,"file":"moveToDelayed-8.js","sourceRoot":"","sources":["../../../src/scripts/moveToDelayed-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Hf,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"moveToDelayed-8.js","sourceRoot":"","sources":["../../../src/scripts/moveToDelayed-8.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsIf,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -376,6 +376,18 @@ end
376
376
  Validate and move or add dependencies to parent.
377
377
  ]]
378
378
  -- Includes
379
+ --[[
380
+ Add delay marker if needed.
381
+ ]]
382
+ -- Includes
383
+ local function addDelayMarkerIfNeeded(target, delayedKey)
384
+ if rcall("LLEN", target) == 0 then
385
+ local nextTimestamp = getNextDelayedTimestamp(delayedKey)
386
+ if nextTimestamp ~= nil then
387
+ rcall("LPUSH", target, "0:" .. nextTimestamp)
388
+ end
389
+ end
390
+ end
379
391
  local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
380
392
  parentId, jobIdKey, returnvalue, timestamp )
381
393
  local processedSet = parentKey .. ":processed"
@@ -393,12 +405,7 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
393
405
  local score = delayedTimestamp * 0x1000
394
406
  local parentDelayedKey = parentQueueKey .. ":delayed"
395
407
  rcall("ZADD", parentDelayedKey, score, parentId)
396
- if rcall("LLEN", parentTarget) == 0 then
397
- local nextTimestamp = getNextDelayedTimestamp(parentDelayedKey)
398
- if not nextTimestamp or (delayedTimestamp <= nextTimestamp) then
399
- rcall("LPUSH", parentTarget, "0:" .. delayedTimestamp - tonumber(timestamp))
400
- end
401
- end
408
+ addDelayMarkerIfNeeded(parentTarget, parentDelayedKey)
402
409
  -- Standard or priority add
403
410
  elseif priority == 0 then
404
411
  rcall("RPUSH", parentTarget, parentId)
@@ -1 +1 @@
1
- {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8iBf,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"moveToFinished-12.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-12.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqjBf,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bullmq",
3
- "version": "3.5.5",
3
+ "version": "3.5.6",
4
4
  "description": "Queue for messages and jobs based on Redis",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",