bullmq 5.41.8 → 5.42.0

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 (98) hide show
  1. package/dist/cjs/classes/job-scheduler.js +14 -18
  2. package/dist/cjs/classes/job-scheduler.js.map +1 -1
  3. package/dist/cjs/classes/job.js +20 -13
  4. package/dist/cjs/classes/job.js.map +1 -1
  5. package/dist/cjs/classes/scripts.js +33 -3
  6. package/dist/cjs/classes/scripts.js.map +1 -1
  7. package/dist/cjs/classes/worker.js +4 -8
  8. package/dist/cjs/classes/worker.js.map +1 -1
  9. package/dist/cjs/commands/addJobScheduler-10.lua +9 -36
  10. package/dist/cjs/commands/includes/addJobFromScheduler.lua +41 -0
  11. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +11 -1
  12. package/dist/cjs/commands/includes/removeJobKeys.lua +2 -2
  13. package/dist/cjs/commands/includes/storeJobScheduler.lua +1 -1
  14. package/dist/cjs/commands/moveStalledJobsToWait-9.lua +5 -0
  15. package/dist/cjs/commands/moveToFinished-14.lua +2 -0
  16. package/dist/cjs/commands/moveToWaitingChildren-8.lua +133 -0
  17. package/dist/cjs/commands/removeJob-3.lua +10 -0
  18. package/dist/{esm/commands/updateJobScheduler-7.lua → cjs/commands/updateJobScheduler-11.lua} +28 -21
  19. package/dist/cjs/scripts/addJobScheduler-10.js +80 -70
  20. package/dist/cjs/scripts/addJobScheduler-10.js.map +1 -1
  21. package/dist/cjs/scripts/addRepeatableJob-2.js +2 -2
  22. package/dist/cjs/scripts/cleanJobsInSet-3.js +2 -2
  23. package/dist/cjs/scripts/drain-5.js +2 -2
  24. package/dist/cjs/scripts/index.js +2 -2
  25. package/dist/cjs/scripts/index.js.map +1 -1
  26. package/dist/cjs/scripts/moveStalledJobsToWait-9.js +17 -3
  27. package/dist/cjs/scripts/moveStalledJobsToWait-9.js.map +1 -1
  28. package/dist/cjs/scripts/moveToFinished-14.js +14 -3
  29. package/dist/cjs/scripts/moveToFinished-14.js.map +1 -1
  30. package/dist/cjs/scripts/moveToWaitingChildren-8.js +549 -0
  31. package/dist/cjs/scripts/moveToWaitingChildren-8.js.map +1 -0
  32. package/dist/cjs/scripts/obliterate-2.js +2 -2
  33. package/dist/cjs/scripts/removeChildDependency-1.js +2 -2
  34. package/dist/cjs/scripts/removeJob-3.js +10 -2
  35. package/dist/cjs/scripts/removeJob-3.js.map +1 -1
  36. package/dist/cjs/scripts/removeJobScheduler-3.js +2 -2
  37. package/dist/cjs/scripts/removeRepeatable-3.js +2 -2
  38. package/dist/cjs/scripts/updateJobScheduler-11.js +246 -0
  39. package/dist/cjs/scripts/updateJobScheduler-11.js.map +1 -0
  40. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  41. package/dist/cjs/version.js +1 -1
  42. package/dist/esm/classes/job-scheduler.js +14 -18
  43. package/dist/esm/classes/job-scheduler.js.map +1 -1
  44. package/dist/esm/classes/job.js +20 -13
  45. package/dist/esm/classes/job.js.map +1 -1
  46. package/dist/esm/classes/scripts.d.ts +1 -1
  47. package/dist/esm/classes/scripts.js +33 -3
  48. package/dist/esm/classes/scripts.js.map +1 -1
  49. package/dist/esm/classes/worker.js +4 -8
  50. package/dist/esm/classes/worker.js.map +1 -1
  51. package/dist/esm/commands/addJobScheduler-10.lua +9 -36
  52. package/dist/esm/commands/includes/addJobFromScheduler.lua +41 -0
  53. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +11 -1
  54. package/dist/esm/commands/includes/removeJobKeys.lua +2 -2
  55. package/dist/esm/commands/includes/storeJobScheduler.lua +1 -1
  56. package/dist/esm/commands/moveStalledJobsToWait-9.lua +5 -0
  57. package/dist/esm/commands/moveToFinished-14.lua +2 -0
  58. package/dist/esm/commands/moveToWaitingChildren-8.lua +133 -0
  59. package/dist/esm/commands/removeJob-3.lua +10 -0
  60. package/dist/{cjs/commands/updateJobScheduler-7.lua → esm/commands/updateJobScheduler-11.lua} +28 -21
  61. package/dist/esm/scripts/addJobScheduler-10.js +80 -70
  62. package/dist/esm/scripts/addJobScheduler-10.js.map +1 -1
  63. package/dist/esm/scripts/addRepeatableJob-2.js +2 -2
  64. package/dist/esm/scripts/cleanJobsInSet-3.js +2 -2
  65. package/dist/esm/scripts/drain-5.js +2 -2
  66. package/dist/esm/scripts/index.d.ts +2 -2
  67. package/dist/esm/scripts/index.js +2 -2
  68. package/dist/esm/scripts/index.js.map +1 -1
  69. package/dist/esm/scripts/moveStalledJobsToWait-9.js +17 -3
  70. package/dist/esm/scripts/moveStalledJobsToWait-9.js.map +1 -1
  71. package/dist/esm/scripts/moveToFinished-14.js +14 -3
  72. package/dist/esm/scripts/moveToFinished-14.js.map +1 -1
  73. package/dist/esm/scripts/moveToWaitingChildren-8.js +546 -0
  74. package/dist/esm/scripts/moveToWaitingChildren-8.js.map +1 -0
  75. package/dist/esm/scripts/obliterate-2.js +2 -2
  76. package/dist/esm/scripts/removeChildDependency-1.js +2 -2
  77. package/dist/esm/scripts/removeJob-3.js +10 -2
  78. package/dist/esm/scripts/removeJob-3.js.map +1 -1
  79. package/dist/esm/scripts/removeJobScheduler-3.js +2 -2
  80. package/dist/esm/scripts/removeRepeatable-3.js +2 -2
  81. package/dist/esm/scripts/updateJobScheduler-11.js +243 -0
  82. package/dist/esm/scripts/updateJobScheduler-11.js.map +1 -0
  83. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  84. package/dist/esm/version.d.ts +1 -1
  85. package/dist/esm/version.js +1 -1
  86. package/package.json +1 -1
  87. package/dist/cjs/commands/moveToWaitingChildren-5.lua +0 -68
  88. package/dist/cjs/scripts/moveToWaitingChildren-5.js +0 -83
  89. package/dist/cjs/scripts/moveToWaitingChildren-5.js.map +0 -1
  90. package/dist/cjs/scripts/updateJobScheduler-7.js +0 -144
  91. package/dist/cjs/scripts/updateJobScheduler-7.js.map +0 -1
  92. package/dist/esm/commands/moveToWaitingChildren-5.lua +0 -68
  93. package/dist/esm/scripts/moveToWaitingChildren-5.js +0 -80
  94. package/dist/esm/scripts/moveToWaitingChildren-5.js.map +0 -1
  95. package/dist/esm/scripts/updateJobScheduler-7.js +0 -141
  96. package/dist/esm/scripts/updateJobScheduler-7.js.map +0 -1
  97. /package/dist/esm/scripts/{moveToWaitingChildren-5.d.ts → moveToWaitingChildren-8.d.ts} +0 -0
  98. /package/dist/esm/scripts/{updateJobScheduler-7.d.ts → updateJobScheduler-11.d.ts} +0 -0
@@ -34,12 +34,19 @@ const content = `--[[
34
34
  local rcall = redis.call
35
35
  local repeatKey = KEYS[1]
36
36
  local delayedKey = KEYS[2]
37
+ local waitKey = KEYS[3]
38
+ local pausedKey = KEYS[4]
39
+ local metaKey = KEYS[5]
37
40
  local prioritizedKey = KEYS[6]
38
41
  local nextMillis = ARGV[1]
39
42
  local jobSchedulerId = ARGV[3]
40
43
  local templateOpts = cmsgpack.unpack(ARGV[5])
41
44
  local prefixKey = ARGV[8]
42
45
  -- Includes
46
+ --[[
47
+ Add delay marker if needed.
48
+ ]]
49
+ -- Includes
43
50
  --[[
44
51
  Adds a delayed job to the queue by doing the following:
45
52
  - Creates a new job key with the job data.
@@ -129,6 +136,71 @@ local function addJobWithPriority(markerKey, prioritizedKey, priority, jobId, pr
129
136
  rcall("ZADD", prioritizedKey, score, jobId)
130
137
  addBaseMarkerIfNeeded(markerKey, isPausedOrMaxed)
131
138
  end
139
+ --[[
140
+ Function to check for the meta.paused key to decide if we are paused or not
141
+ (since an empty list and !EXISTS are not really the same).
142
+ ]]
143
+ local function isQueuePaused(queueMetaKey)
144
+ return rcall("HEXISTS", queueMetaKey, "paused") == 1
145
+ end
146
+ --[[
147
+ Function to store a job
148
+ ]]
149
+ local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
150
+ parentKey, parentData, repeatJobKey)
151
+ local jsonOpts = cjson.encode(opts)
152
+ local delay = opts['delay'] or 0
153
+ local priority = opts['priority'] or 0
154
+ local debounceId = opts['de'] and opts['de']['id']
155
+ local optionalValues = {}
156
+ if parentKey ~= nil then
157
+ table.insert(optionalValues, "parentKey")
158
+ table.insert(optionalValues, parentKey)
159
+ table.insert(optionalValues, "parent")
160
+ table.insert(optionalValues, parentData)
161
+ end
162
+ if repeatJobKey ~= nil then
163
+ table.insert(optionalValues, "rjk")
164
+ table.insert(optionalValues, repeatJobKey)
165
+ end
166
+ if debounceId then
167
+ table.insert(optionalValues, "deid")
168
+ table.insert(optionalValues, debounceId)
169
+ end
170
+ rcall("HMSET", jobIdKey, "name", name, "data", data, "opts", jsonOpts,
171
+ "timestamp", timestamp, "delay", delay, "priority", priority,
172
+ unpack(optionalValues))
173
+ rcall("XADD", eventsKey, "*", "event", "added", "jobId", jobId, "name", name)
174
+ return delay, priority
175
+ end
176
+ local function addJobFromScheduler(jobKey, jobId, rawOpts, waitKey, pausedKey, metaKey, prioritizedKey,
177
+ priorityCounter, delayedKey, markerKey, eventsKey, name, maxEvents, timestamp, data, jobSchedulerId)
178
+ local opts = cmsgpack.unpack(rawOpts)
179
+ local delay, priority = storeJob(eventsKey, jobKey, jobId, name, data,
180
+ opts, timestamp, nil, nil, jobSchedulerId)
181
+ if delay ~= 0 then
182
+ addDelayedJob(jobId, delayedKey, eventsKey, timestamp, maxEvents, markerKey, delay)
183
+ else
184
+ local isPaused = isQueuePaused(metaKey)
185
+ -- Standard or priority add
186
+ if priority == 0 then
187
+ if isPaused then
188
+ -- LIFO or FIFO
189
+ local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
190
+ rcall(pushCmd, pausedKey, jobId)
191
+ else
192
+ -- LIFO or FIFO
193
+ local pushCmd = opts['lifo'] and 'RPUSH' or 'LPUSH'
194
+ rcall(pushCmd, waitKey, jobId)
195
+ end
196
+ else
197
+ -- Priority add
198
+ addJobWithPriority(markerKey, prioritizedKey, priority, jobId, priorityCounter, isPaused)
199
+ end
200
+ -- Emit waiting event
201
+ rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "waiting", "jobId", jobId)
202
+ end
203
+ end
132
204
  --[[
133
205
  Function to get max events value or set by default 10000.
134
206
  ]]
@@ -140,13 +212,6 @@ local function getOrSetMaxEvents(metaKey)
140
212
  end
141
213
  return maxEvents
142
214
  end
143
- --[[
144
- Function to check for the meta.paused key to decide if we are paused or not
145
- (since an empty list and !EXISTS are not really the same).
146
- ]]
147
- local function isQueuePaused(queueMetaKey)
148
- return rcall("HEXISTS", queueMetaKey, "paused") == 1
149
- end
150
215
  --[[
151
216
  Function to remove job.
152
217
  ]]
@@ -165,8 +230,8 @@ end
165
230
  Function to remove job keys.
166
231
  ]]
167
232
  local function removeJobKeys(jobKey)
168
- return rcall("DEL", jobKey, jobKey .. ':logs',
169
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
233
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
234
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
170
235
  end
171
236
  --[[
172
237
  Check if this job has a parent. If so we will just remove it from
@@ -292,36 +357,6 @@ local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
292
357
  end
293
358
  removeJobKeys(jobKey)
294
359
  end
295
- --[[
296
- Function to store a job
297
- ]]
298
- local function storeJob(eventsKey, jobIdKey, jobId, name, data, opts, timestamp,
299
- parentKey, parentData, repeatJobKey)
300
- local jsonOpts = cjson.encode(opts)
301
- local delay = opts['delay'] or 0
302
- local priority = opts['priority'] or 0
303
- local debounceId = opts['de'] and opts['de']['id']
304
- local optionalValues = {}
305
- if parentKey ~= nil then
306
- table.insert(optionalValues, "parentKey")
307
- table.insert(optionalValues, parentKey)
308
- table.insert(optionalValues, "parent")
309
- table.insert(optionalValues, parentData)
310
- end
311
- if repeatJobKey ~= nil then
312
- table.insert(optionalValues, "rjk")
313
- table.insert(optionalValues, repeatJobKey)
314
- end
315
- if debounceId then
316
- table.insert(optionalValues, "deid")
317
- table.insert(optionalValues, debounceId)
318
- end
319
- rcall("HMSET", jobIdKey, "name", name, "data", data, "opts", jsonOpts,
320
- "timestamp", timestamp, "delay", delay, "priority", priority,
321
- unpack(optionalValues))
322
- rcall("XADD", eventsKey, "*", "event", "added", "jobId", jobId, "name", name)
323
- return delay, priority
324
- end
325
360
  --[[
326
361
  Function to store a job scheduler
327
362
  ]]
@@ -358,7 +393,7 @@ local function storeJobScheduler(schedulerId, schedulerKey, repeatKey, nextMilli
358
393
  table.insert(optionalValues, "data")
359
394
  table.insert(optionalValues, templateData)
360
395
  end
361
- rcall("HMSET", schedulerKey, "name", opts['name'], unpack(optionalValues))
396
+ rcall("HMSET", schedulerKey, "name", opts['name'], "ic", 1, unpack(optionalValues))
362
397
  end
363
398
  -- If we are overriding a repeatable job we must delete the delayed job for
364
399
  -- the next iteration.
@@ -376,12 +411,12 @@ if prevMillis ~= false then
376
411
  removeJob(currentJobId, true, prefixKey, true --[[remove debounce key]] )
377
412
  rcall("ZREM", prioritizedKey, currentJobId)
378
413
  else
379
- if isQueuePaused(KEYS[5]) then
380
- if rcall("LREM", KEYS[4], 1, currentJobId) > 0 then
414
+ if isQueuePaused(metaKey) then
415
+ if rcall("LREM", pausedKey, 1, currentJobId) > 0 then
381
416
  removeJob(currentJobId, true, prefixKey, true --[[remove debounce key]] )
382
417
  end
383
418
  else
384
- if rcall("LREM", KEYS[3], 1, currentJobId) > 0 then
419
+ if rcall("LREM", waitKey, 1, currentJobId) > 0 then
385
420
  removeJob(currentJobId, true, prefixKey, true --[[remove debounce key]] )
386
421
  end
387
422
  end
@@ -392,35 +427,10 @@ local schedulerOpts = cmsgpack.unpack(ARGV[2])
392
427
  storeJobScheduler(jobSchedulerId, schedulerKey, repeatKey, nextMillis, schedulerOpts, ARGV[4], templateOpts)
393
428
  if rcall("EXISTS", nextDelayedJobKey) ~= 1 then
394
429
  local eventsKey = KEYS[9]
395
- local metaKey = KEYS[5]
396
430
  local maxEvents = getOrSetMaxEvents(metaKey)
397
431
  rcall("INCR", KEYS[8])
398
- local delayedOpts = cmsgpack.unpack(ARGV[6])
399
- local delay, priority = storeJob(eventsKey, nextDelayedJobKey, nextDelayedJobId, schedulerOpts['name'], ARGV[4],
400
- delayedOpts, ARGV[7], nil, nil, jobSchedulerId)
401
- if delay ~= 0 then
402
- addDelayedJob(nextDelayedJobId, delayedKey, eventsKey,
403
- ARGV[7], maxEvents, KEYS[7], delay)
404
- else
405
- local isPaused = isQueuePaused(KEYS[5])
406
- -- Standard or priority add
407
- if priority == 0 then
408
- if isPaused then
409
- -- LIFO or FIFO
410
- local pushCmd = delayedOpts['lifo'] and 'RPUSH' or 'LPUSH'
411
- rcall(pushCmd, KEYS[4], nextDelayedJobId)
412
- else
413
- -- LIFO or FIFO
414
- local pushCmd = delayedOpts['lifo'] and 'RPUSH' or 'LPUSH'
415
- rcall(pushCmd, KEYS[3], nextDelayedJobId)
416
- end
417
- else
418
- -- Priority add
419
- addJobWithPriority(KEYS[7], KEYS[6], priority, nextDelayedJobId, KEYS[10], isPaused)
420
- end
421
- -- Emit waiting event
422
- rcall("XADD", eventsKey, "MAXLEN", "~", maxEvents, "*", "event", "waiting", "jobId", nextDelayedJobId)
423
- end
432
+ addJobFromScheduler(nextDelayedJobKey, nextDelayedJobId, ARGV[6], waitKey, pausedKey, metaKey, prioritizedKey,
433
+ KEYS[10], delayedKey, KEYS[7], eventsKey, schedulerOpts['name'], maxEvents, ARGV[7], ARGV[4], jobSchedulerId)
424
434
  if ARGV[9] ~= "" then
425
435
  rcall("HSET", ARGV[9], "nrjid", nextDelayedJobId)
426
436
  end
@@ -1 +1 @@
1
- {"version":3,"file":"addJobScheduler-10.js","sourceRoot":"","sources":["../../../src/scripts/addJobScheduler-10.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyaf,CAAC;AACW,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,iBAAiB;IACvB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"addJobScheduler-10.js","sourceRoot":"","sources":["../../../src/scripts/addJobScheduler-10.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmbf,CAAC;AACW,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,iBAAiB;IACvB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
@@ -45,8 +45,8 @@ end
45
45
  Function to remove job keys.
46
46
  ]]
47
47
  local function removeJobKeys(jobKey)
48
- return rcall("DEL", jobKey, jobKey .. ':logs',
49
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
48
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
49
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
50
50
  end
51
51
  --[[
52
52
  Check if this job has a parent. If so we will just remove it from
@@ -81,8 +81,8 @@ end
81
81
  Function to remove job keys.
82
82
  ]]
83
83
  local function removeJobKeys(jobKey)
84
- return rcall("DEL", jobKey, jobKey .. ':logs',
85
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
84
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
85
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
86
86
  end
87
87
  --[[
88
88
  Check if this job has a parent. If so we will just remove it from
@@ -53,8 +53,8 @@ end
53
53
  Function to remove job keys.
54
54
  ]]
55
55
  local function removeJobKeys(jobKey)
56
- return rcall("DEL", jobKey, jobKey .. ':logs',
57
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
56
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
57
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
58
58
  end
59
59
  --[[
60
60
  Check if this job has a parent. If so we will just remove it from
@@ -30,7 +30,7 @@ tslib_1.__exportStar(require("./moveStalledJobsToWait-9"), exports);
30
30
  tslib_1.__exportStar(require("./moveToActive-11"), exports);
31
31
  tslib_1.__exportStar(require("./moveToDelayed-8"), exports);
32
32
  tslib_1.__exportStar(require("./moveToFinished-14"), exports);
33
- tslib_1.__exportStar(require("./moveToWaitingChildren-5"), exports);
33
+ tslib_1.__exportStar(require("./moveToWaitingChildren-8"), exports);
34
34
  tslib_1.__exportStar(require("./obliterate-2"), exports);
35
35
  tslib_1.__exportStar(require("./paginate-1"), exports);
36
36
  tslib_1.__exportStar(require("./pause-7"), exports);
@@ -44,7 +44,7 @@ tslib_1.__exportStar(require("./reprocessJob-8"), exports);
44
44
  tslib_1.__exportStar(require("./retryJob-11"), exports);
45
45
  tslib_1.__exportStar(require("./saveStacktrace-1"), exports);
46
46
  tslib_1.__exportStar(require("./updateData-1"), exports);
47
- tslib_1.__exportStar(require("./updateJobScheduler-7"), exports);
47
+ tslib_1.__exportStar(require("./updateJobScheduler-11"), exports);
48
48
  tslib_1.__exportStar(require("./updateProgress-3"), exports);
49
49
  tslib_1.__exportStar(require("./updateRepeatableJobMillis-1"), exports);
50
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,+DAAqC;AACrC,qDAA2B;AAC3B,2DAAiC;AACjC,gEAAsC;AACtC,+DAAqC;AACrC,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC;AACnC,6DAAmC;AACnC,oDAA0B;AAC1B,yDAA+B;AAC/B,0DAAgC;AAChC,wDAA8B;AAC9B,mEAAyC;AACzC,8DAAoC;AACpC,wDAA8B;AAC9B,8DAAoC;AACpC,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sDAA4B;AAC5B,sEAA4C;AAC5C,6DAAmC;AACnC,oEAA0C;AAC1C,4DAAkC;AAClC,4DAAkC;AAClC,8DAAoC;AACpC,oEAA0C;AAC1C,yDAA+B;AAC/B,uDAA6B;AAC7B,oDAA0B;AAC1B,sDAA4B;AAC5B,0DAAgC;AAChC,oEAA0C;AAC1C,wDAA8B;AAC9B,iEAAuC;AACvC,+DAAqC;AACrC,2DAAiC;AACjC,wDAA8B;AAC9B,6DAAmC;AACnC,yDAA+B;AAC/B,iEAAuC;AACvC,6DAAmC;AACnC,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,+DAAqC;AACrC,qDAA2B;AAC3B,2DAAiC;AACjC,gEAAsC;AACtC,+DAAqC;AACrC,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC;AACnC,6DAAmC;AACnC,oDAA0B;AAC1B,yDAA+B;AAC/B,0DAAgC;AAChC,wDAA8B;AAC9B,mEAAyC;AACzC,8DAAoC;AACpC,wDAA8B;AAC9B,8DAAoC;AACpC,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sDAA4B;AAC5B,sEAA4C;AAC5C,6DAAmC;AACnC,oEAA0C;AAC1C,4DAAkC;AAClC,4DAAkC;AAClC,8DAAoC;AACpC,oEAA0C;AAC1C,yDAA+B;AAC/B,uDAA6B;AAC7B,oDAA0B;AAC1B,sDAA4B;AAC5B,0DAAgC;AAChC,oEAA0C;AAC1C,wDAA8B;AAC9B,iEAAuC;AACvC,+DAAqC;AACrC,2DAAiC;AACjC,wDAA8B;AAC9B,6DAAmC;AACnC,yDAA+B;AAC/B,kEAAwC;AACxC,6DAAmC;AACnC,wEAA8C"}
@@ -213,8 +213,8 @@ end
213
213
  Function to remove job keys.
214
214
  ]]
215
215
  local function removeJobKeys(jobKey)
216
- return rcall("DEL", jobKey, jobKey .. ':logs',
217
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
216
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
217
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
218
218
  end
219
219
  --[[
220
220
  Check if this job has a parent. If so we will just remove it from
@@ -370,13 +370,16 @@ local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
370
370
  local parentFailedKey = parentQueueKey .. ":failed"
371
371
  rcall("ZADD", parentFailedKey, timestamp, parentId)
372
372
  local failedReason = "child " .. jobIdKey .. " failed"
373
- rcall("HMSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
373
+ rcall("HSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
374
374
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
375
375
  failedReason, "prev", "waiting-children")
376
376
  local jobAttributes = rcall("HMGET", parentKey, "parent", "deid", "opts")
377
377
  removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
378
378
  if jobAttributes[1] then
379
379
  local parentData = cjson.decode(jobAttributes[1])
380
+ local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
381
+ local grandParentUnsuccesssful = grandParentKey .. ":unsuccessful"
382
+ rcall("ZADD", grandParentUnsuccesssful, timestamp, parentKey)
380
383
  if parentData['fpof'] then
381
384
  moveParentFromWaitingChildrenToFailed(
382
385
  parentData['queueKey'],
@@ -438,6 +441,12 @@ local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
438
441
  local parentRawOpts = jobAttributes[3]
439
442
  local parentOpts = cjson.decode(parentRawOpts)
440
443
  removeJobsOnFail(parentQueuePrefix, parentFailedKey, parentId, parentOpts, timestamp)
444
+ else
445
+ local grandParentKey = rcall("HGET", parentKey, "parentKey")
446
+ if grandParentKey then
447
+ local grandParentUnsuccesssfulSet = grandParentKey .. ":unsuccessful"
448
+ rcall("ZADD", grandParentUnsuccesssfulSet, timestamp, parentKey)
449
+ end
441
450
  end
442
451
  end
443
452
  --[[
@@ -519,6 +528,11 @@ if (#stalling > 0) then
519
528
  if rawParentData then
520
529
  if opts['fpof'] then
521
530
  local parentData = cjson.decode(rawParentData)
531
+ -- TODO: need to remove this job from dependencies set in next breaking change
532
+ -- no for now as it would imply a breaking change
533
+ local parentKey = parentData['queueKey'] .. ':' .. parentData['id']
534
+ local unsuccesssfulSet = parentKey .. ":unsuccessful"
535
+ rcall("ZADD", unsuccesssfulSet, timestamp, jobKey)
522
536
  moveParentFromWaitingChildrenToFailed(
523
537
  parentData['queueKey'],
524
538
  parentData['queueKey'] .. ':' .. parentData['id'],
@@ -1 +1 @@
1
- {"version":3,"file":"moveStalledJobsToWait-9.js","sourceRoot":"","sources":["../../../src/scripts/moveStalledJobsToWait-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAqjBS,CAAC;AACb,QAAA,qBAAqB,GAAG;IACnC,IAAI,EAAE,uBAAuB;IAC7B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"moveStalledJobsToWait-9.js","sourceRoot":"","sources":["../../../src/scripts/moveStalledJobsToWait-9.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAmkBS,CAAC;AACb,QAAA,qBAAqB,GAAG;IACnC,IAAI,EAAE,uBAAuB;IAC7B,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -308,8 +308,8 @@ end
308
308
  Function to remove job keys.
309
309
  ]]
310
310
  local function removeJobKeys(jobKey)
311
- return rcall("DEL", jobKey, jobKey .. ':logs',
312
- jobKey .. ':dependencies', jobKey .. ':processed', jobKey .. ':failed')
311
+ return rcall("DEL", jobKey, jobKey .. ':logs', jobKey .. ':dependencies',
312
+ jobKey .. ':processed', jobKey .. ':failed', jobKey .. ':unsuccessful')
313
313
  end
314
314
  --[[
315
315
  Check if this job has a parent. If so we will just remove it from
@@ -465,13 +465,16 @@ local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
465
465
  local parentFailedKey = parentQueueKey .. ":failed"
466
466
  rcall("ZADD", parentFailedKey, timestamp, parentId)
467
467
  local failedReason = "child " .. jobIdKey .. " failed"
468
- rcall("HMSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
468
+ rcall("HSET", parentKey, "failedReason", failedReason, "finishedOn", timestamp)
469
469
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
470
470
  failedReason, "prev", "waiting-children")
471
471
  local jobAttributes = rcall("HMGET", parentKey, "parent", "deid", "opts")
472
472
  removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
473
473
  if jobAttributes[1] then
474
474
  local parentData = cjson.decode(jobAttributes[1])
475
+ local grandParentKey = parentData['queueKey'] .. ':' .. parentData['id']
476
+ local grandParentUnsuccesssful = grandParentKey .. ":unsuccessful"
477
+ rcall("ZADD", grandParentUnsuccesssful, timestamp, parentKey)
475
478
  if parentData['fpof'] then
476
479
  moveParentFromWaitingChildrenToFailed(
477
480
  parentData['queueKey'],
@@ -533,6 +536,12 @@ local function moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
533
536
  local parentRawOpts = jobAttributes[3]
534
537
  local parentOpts = cjson.decode(parentRawOpts)
535
538
  removeJobsOnFail(parentQueuePrefix, parentFailedKey, parentId, parentOpts, timestamp)
539
+ else
540
+ local grandParentKey = rcall("HGET", parentKey, "parentKey")
541
+ if grandParentKey then
542
+ local grandParentUnsuccesssfulSet = grandParentKey .. ":unsuccessful"
543
+ rcall("ZADD", grandParentUnsuccesssfulSet, timestamp, parentKey)
544
+ end
536
545
  end
537
546
  end
538
547
  --[[
@@ -722,6 +731,8 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
722
731
  end
723
732
  else
724
733
  if opts['fpof'] then
734
+ local unsuccesssfulSet = parentKey .. ":unsuccessful"
735
+ rcall("ZADD", unsuccesssfulSet, timestamp, jobIdKey)
725
736
  moveParentFromWaitingChildrenToFailed(parentQueueKey, parentKey,
726
737
  parentId, jobIdKey,
727
738
  timestamp)
@@ -1 +1 @@
1
- {"version":3,"file":"moveToFinished-14.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-14.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAo0Bf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}
1
+ {"version":3,"file":"moveToFinished-14.js","sourceRoot":"","sources":["../../../src/scripts/moveToFinished-14.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+0Bf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,EAAE;CACT,CAAC"}