bullmq 5.21.2 → 5.23.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 (92) hide show
  1. package/README.md +21 -21
  2. package/dist/cjs/classes/flow-producer.js +1 -0
  3. package/dist/cjs/classes/flow-producer.js.map +1 -1
  4. package/dist/cjs/classes/job-scheduler.js +14 -0
  5. package/dist/cjs/classes/job-scheduler.js.map +1 -1
  6. package/dist/cjs/classes/job.js +61 -41
  7. package/dist/cjs/classes/job.js.map +1 -1
  8. package/dist/cjs/classes/queue-base.js +54 -0
  9. package/dist/cjs/classes/queue-base.js.map +1 -1
  10. package/dist/cjs/classes/queue-events.js.map +1 -1
  11. package/dist/cjs/classes/queue.js +172 -76
  12. package/dist/cjs/classes/queue.js.map +1 -1
  13. package/dist/cjs/classes/worker.js +232 -128
  14. package/dist/cjs/classes/worker.js.map +1 -1
  15. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +2 -2
  16. package/dist/cjs/commands/includes/removeDeduplicationKeyIfNeeded.lua +14 -0
  17. package/dist/cjs/commands/moveStalledJobsToWait-9.lua +3 -3
  18. package/dist/cjs/commands/moveToFinished-14.lua +2 -2
  19. package/dist/cjs/commands/updateJobOption-1.lua +26 -0
  20. package/dist/cjs/enums/index.js +1 -0
  21. package/dist/cjs/enums/index.js.map +1 -1
  22. package/dist/cjs/enums/telemetry-attributes.js +45 -0
  23. package/dist/cjs/enums/telemetry-attributes.js.map +1 -0
  24. package/dist/cjs/interfaces/index.js +1 -0
  25. package/dist/cjs/interfaces/index.js.map +1 -1
  26. package/dist/cjs/interfaces/queue-options.js.map +1 -1
  27. package/dist/cjs/interfaces/telemetry.js +3 -0
  28. package/dist/cjs/interfaces/telemetry.js.map +1 -0
  29. package/dist/cjs/scripts/index.js +1 -0
  30. package/dist/cjs/scripts/index.js.map +1 -1
  31. package/dist/cjs/scripts/moveStalledJobsToWait-9.js +9 -9
  32. package/dist/cjs/scripts/moveToFinished-14.js +8 -8
  33. package/dist/cjs/scripts/updateJobOption-1.js +30 -0
  34. package/dist/cjs/scripts/updateJobOption-1.js.map +1 -0
  35. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
  36. package/dist/cjs/version.js +1 -1
  37. package/dist/esm/classes/flow-producer.js +1 -0
  38. package/dist/esm/classes/flow-producer.js.map +1 -1
  39. package/dist/esm/classes/job-scheduler.d.ts +2 -1
  40. package/dist/esm/classes/job-scheduler.js +14 -0
  41. package/dist/esm/classes/job-scheduler.js.map +1 -1
  42. package/dist/esm/classes/job.d.ts +2 -0
  43. package/dist/esm/classes/job.js +61 -41
  44. package/dist/esm/classes/job.js.map +1 -1
  45. package/dist/esm/classes/queue-base.d.ts +19 -1
  46. package/dist/esm/classes/queue-base.js +54 -0
  47. package/dist/esm/classes/queue-base.js.map +1 -1
  48. package/dist/esm/classes/queue-events.js.map +1 -1
  49. package/dist/esm/classes/queue.d.ts +6 -0
  50. package/dist/esm/classes/queue.js +172 -76
  51. package/dist/esm/classes/queue.js.map +1 -1
  52. package/dist/esm/classes/worker.d.ts +2 -1
  53. package/dist/esm/classes/worker.js +232 -128
  54. package/dist/esm/classes/worker.js.map +1 -1
  55. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +2 -2
  56. package/dist/esm/commands/includes/removeDeduplicationKeyIfNeeded.lua +14 -0
  57. package/dist/esm/commands/moveStalledJobsToWait-9.lua +3 -3
  58. package/dist/esm/commands/moveToFinished-14.lua +2 -2
  59. package/dist/esm/commands/updateJobOption-1.lua +26 -0
  60. package/dist/esm/enums/index.d.ts +1 -0
  61. package/dist/esm/enums/index.js +1 -0
  62. package/dist/esm/enums/index.js.map +1 -1
  63. package/dist/esm/enums/telemetry-attributes.d.ts +39 -0
  64. package/dist/esm/enums/telemetry-attributes.js +42 -0
  65. package/dist/esm/enums/telemetry-attributes.js.map +1 -0
  66. package/dist/esm/interfaces/base-job-options.d.ts +4 -0
  67. package/dist/esm/interfaces/index.d.ts +1 -0
  68. package/dist/esm/interfaces/index.js +1 -0
  69. package/dist/esm/interfaces/index.js.map +1 -1
  70. package/dist/esm/interfaces/queue-options.d.ts +9 -0
  71. package/dist/esm/interfaces/queue-options.js.map +1 -1
  72. package/dist/esm/interfaces/repeatable-job.d.ts +1 -1
  73. package/dist/esm/interfaces/telemetry.d.ts +150 -0
  74. package/dist/esm/interfaces/telemetry.js +2 -0
  75. package/dist/esm/interfaces/telemetry.js.map +1 -0
  76. package/dist/esm/interfaces/worker-options.d.ts +13 -0
  77. package/dist/esm/scripts/index.d.ts +1 -0
  78. package/dist/esm/scripts/index.js +1 -0
  79. package/dist/esm/scripts/index.js.map +1 -1
  80. package/dist/esm/scripts/moveStalledJobsToWait-9.js +9 -9
  81. package/dist/esm/scripts/moveToFinished-14.js +8 -8
  82. package/dist/esm/scripts/updateJobOption-1.d.ts +5 -0
  83. package/dist/esm/scripts/updateJobOption-1.js +27 -0
  84. package/dist/esm/scripts/updateJobOption-1.js.map +1 -0
  85. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  86. package/dist/esm/types/job-options.d.ts +4 -0
  87. package/dist/esm/types/minimal-queue.d.ts +1 -1
  88. package/dist/esm/version.d.ts +1 -1
  89. package/dist/esm/version.js +1 -1
  90. package/package.json +2 -2
  91. package/dist/cjs/commands/includes/removeDebounceKeyIfNeeded.lua +0 -14
  92. package/dist/esm/commands/includes/removeDebounceKeyIfNeeded.lua +0 -14
@@ -65,7 +65,7 @@ local rcall = redis.call
65
65
  --- @include "includes/moveParentToWaitIfNeeded"
66
66
  --- @include "includes/prepareJobForProcessing"
67
67
  --- @include "includes/promoteDelayedJobs"
68
- --- @include "includes/removeDebounceKeyIfNeeded"
68
+ --- @include "includes/removeDeduplicationKeyIfNeeded"
69
69
  --- @include "includes/removeJobKeys"
70
70
  --- @include "includes/removeJobsByMaxAge"
71
71
  --- @include "includes/removeJobsByMaxCount"
@@ -119,7 +119,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
119
119
 
120
120
  local prefix = ARGV[7]
121
121
 
122
- removeDebounceKeyIfNeeded(prefix, jobAttributes[3])
122
+ removeDeduplicationKeyIfNeeded(prefix, jobAttributes[3])
123
123
 
124
124
  -- If job has a parent we need to
125
125
  -- 1) remove this job id from parents dependencies
@@ -0,0 +1,26 @@
1
+ --[[
2
+ Update a job option
3
+
4
+ Input:
5
+ KEYS[1] Job id key
6
+
7
+ ARGV[1] field
8
+ ARGV[2] value
9
+
10
+ Output:
11
+ 0 - OK
12
+ -1 - Missing job.
13
+ ]]
14
+ local rcall = redis.call
15
+
16
+ if rcall("EXISTS", KEYS[1]) == 1 then -- // Make sure job exists
17
+
18
+ local opts = rcall("HGET", KEYS[1], "opts")
19
+ local jsonOpts = cjson.decode(opts)
20
+ jsonOpts[ARGV[1]] = ARGV[2]
21
+
22
+ rcall("HSET", KEYS[1], "opts", cjson.encode(jsonOpts))
23
+ return 0
24
+ else
25
+ return -1
26
+ end
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./child-command"), exports);
5
5
  tslib_1.__exportStar(require("./error-code"), exports);
6
6
  tslib_1.__exportStar(require("./parent-command"), exports);
7
7
  tslib_1.__exportStar(require("./metrics-time"), exports);
8
+ tslib_1.__exportStar(require("./telemetry-attributes"), exports);
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,uDAA6B;AAC7B,2DAAiC;AACjC,yDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,uDAA6B;AAC7B,2DAAiC;AACjC,yDAA+B;AAC/B,iEAAuC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpanKind = exports.TelemetryAttributes = void 0;
4
+ var TelemetryAttributes;
5
+ (function (TelemetryAttributes) {
6
+ TelemetryAttributes["QueueName"] = "bullmq.queue.name";
7
+ TelemetryAttributes["QueueOperation"] = "bullmq.queue.operation";
8
+ TelemetryAttributes["BulkCount"] = "bullmq.job.bulk.count";
9
+ TelemetryAttributes["BulkNames"] = "bullmq.job.bulk.names";
10
+ TelemetryAttributes["JobName"] = "bullmq.job.name";
11
+ TelemetryAttributes["JobId"] = "bullmq.job.id";
12
+ TelemetryAttributes["JobKey"] = "bullmq.job.key";
13
+ TelemetryAttributes["JobIds"] = "bullmq.job.ids";
14
+ TelemetryAttributes["DeduplicationKey"] = "bullmq.job.deduplication.key";
15
+ TelemetryAttributes["JobOptions"] = "bullmq.job.options";
16
+ TelemetryAttributes["JobProgress"] = "bullmq.job.progress";
17
+ TelemetryAttributes["QueueDrainDelay"] = "bullmq.queue.drain.delay";
18
+ TelemetryAttributes["QueueGrace"] = "bullmq.queue.grace";
19
+ TelemetryAttributes["QueueCleanLimit"] = "bullmq.queue.clean.limit";
20
+ TelemetryAttributes["JobType"] = "bullmq.job.type";
21
+ TelemetryAttributes["QueueOptions"] = "bullmq.queue.options";
22
+ TelemetryAttributes["QueueEventMaxLength"] = "bullmq.queue.event.max.length";
23
+ TelemetryAttributes["WorkerOptions"] = "bullmq.worker.options";
24
+ TelemetryAttributes["WorkerName"] = "bullmq.worker.name";
25
+ TelemetryAttributes["WorkerId"] = "bullmq.worker.id";
26
+ TelemetryAttributes["WorkerRateLimit"] = "bullmq.worker.rate.limit";
27
+ TelemetryAttributes["WorkerDoNotWaitActive"] = "bullmq.worker.do.not.wait.active";
28
+ TelemetryAttributes["WorkerForceClose"] = "bullmq.worker.force.close";
29
+ TelemetryAttributes["WorkerStalledJobs"] = "bullmq.worker.stalled.jobs";
30
+ TelemetryAttributes["WorkerFailedJobs"] = "bullmq.worker.failed.jobs";
31
+ TelemetryAttributes["WorkerJobsToExtendLocks"] = "bullmq.worker.jobs.to.extend.locks";
32
+ TelemetryAttributes["JobFinishedTimestamp"] = "bullmq.job.finished.timestamp";
33
+ TelemetryAttributes["JobProcessedTimestamp"] = "bullmq.job.processed.timestamp";
34
+ TelemetryAttributes["JobResult"] = "bullmq.job.result";
35
+ TelemetryAttributes["JobFailedReason"] = "bullmq.job.failed.reason";
36
+ })(TelemetryAttributes = exports.TelemetryAttributes || (exports.TelemetryAttributes = {}));
37
+ var SpanKind;
38
+ (function (SpanKind) {
39
+ SpanKind[SpanKind["INTERNAL"] = 0] = "INTERNAL";
40
+ SpanKind[SpanKind["SERVER"] = 1] = "SERVER";
41
+ SpanKind[SpanKind["CLIENT"] = 2] = "CLIENT";
42
+ SpanKind[SpanKind["PRODUCER"] = 3] = "PRODUCER";
43
+ SpanKind[SpanKind["CONSUMER"] = 4] = "CONSUMER";
44
+ })(SpanKind = exports.SpanKind || (exports.SpanKind = {}));
45
+ //# sourceMappingURL=telemetry-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-attributes.js","sourceRoot":"","sources":["../../../src/enums/telemetry-attributes.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBA+BX;AA/BD,WAAY,mBAAmB;IAC7B,sDAA+B,CAAA;IAC/B,gEAAyC,CAAA;IACzC,0DAAmC,CAAA;IACnC,0DAAmC,CAAA;IACnC,kDAA2B,CAAA;IAC3B,8CAAuB,CAAA;IACvB,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,wEAAiD,CAAA;IACjD,wDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,mEAA4C,CAAA;IAC5C,wDAAiC,CAAA;IACjC,mEAA4C,CAAA;IAC5C,kDAA2B,CAAA;IAC3B,4DAAqC,CAAA;IACrC,4EAAqD,CAAA;IACrD,8DAAuC,CAAA;IACvC,wDAAiC,CAAA;IACjC,oDAA6B,CAAA;IAC7B,mEAA4C,CAAA;IAC5C,iFAA0D,CAAA;IAC1D,qEAA8C,CAAA;IAC9C,uEAAgD,CAAA;IAChD,qEAA8C,CAAA;IAC9C,qFAA8D,CAAA;IAC9D,6EAAsD,CAAA;IACtD,+EAAwD,CAAA;IACxD,sDAA+B,CAAA;IAC/B,mEAA4C,CAAA;AAC9C,CAAC,EA/BW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QA+B9B;AAED,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,+CAAY,CAAA;IACZ,2CAAU,CAAA;IACV,2CAAU,CAAA;IACV,+CAAY,CAAA;IACZ,+CAAY,CAAA;AACd,CAAC,EANW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMnB"}
@@ -27,4 +27,5 @@ tslib_1.__exportStar(require("./sandboxed-job-processor"), exports);
27
27
  tslib_1.__exportStar(require("./sandboxed-job"), exports);
28
28
  tslib_1.__exportStar(require("./sandboxed-options"), exports);
29
29
  tslib_1.__exportStar(require("./worker-options"), exports);
30
+ tslib_1.__exportStar(require("./telemetry"), exports);
30
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,4DAAkC;AAClC,6DAAmC;AACnC,0DAAgC;AAChC,uDAA6B;AAC7B,6DAAmC;AACnC,qDAA2B;AAC3B,2DAAiC;AACjC,qDAA2B;AAC3B,sDAA4B;AAC5B,4DAAkC;AAClC,oDAA0B;AAC1B,wDAA8B;AAC9B,2DAAiC;AACjC,mDAAyB;AACzB,0DAAgC;AAChC,iEAAuC;AACvC,0DAAgC;AAChC,0DAAgC;AAChC,2DAAiC;AACjC,+DAAqC;AACrC,2DAAiC;AACjC,oEAA0C;AAC1C,0DAAgC;AAChC,8DAAoC;AACpC,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,4DAAkC;AAClC,6DAAmC;AACnC,0DAAgC;AAChC,uDAA6B;AAC7B,6DAAmC;AACnC,qDAA2B;AAC3B,2DAAiC;AACjC,qDAA2B;AAC3B,sDAA4B;AAC5B,4DAAkC;AAClC,oDAA0B;AAC1B,wDAA8B;AAC9B,2DAAiC;AACjC,mDAAyB;AACzB,0DAAgC;AAChC,iEAAuC;AACvC,0DAAgC;AAChC,0DAAgC;AAChC,2DAAiC;AACjC,+DAAqC;AACrC,2DAAiC;AACjC,oEAA0C;AAC1C,0DAAgC;AAChC,8DAAoC;AACpC,2DAAiC;AACjC,sDAA4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"queue-options.js","sourceRoot":"","sources":["../../../src/interfaces/queue-options.ts"],"names":[],"mappings":";;;AAIA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB"}
1
+ {"version":3,"file":"queue-options.js","sourceRoot":"","sources":["../../../src/interfaces/queue-options.ts"],"names":[],"mappings":";;;AAKA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/interfaces/telemetry.ts"],"names":[],"mappings":""}
@@ -42,6 +42,7 @@ tslib_1.__exportStar(require("./reprocessJob-8"), exports);
42
42
  tslib_1.__exportStar(require("./retryJob-11"), exports);
43
43
  tslib_1.__exportStar(require("./saveStacktrace-1"), exports);
44
44
  tslib_1.__exportStar(require("./updateData-1"), exports);
45
+ tslib_1.__exportStar(require("./updateJobOption-1"), exports);
45
46
  tslib_1.__exportStar(require("./updateProgress-3"), exports);
46
47
  tslib_1.__exportStar(require("./updateRepeatableJobMillis-1"), exports);
47
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,8DAAoC;AACpC,qDAA2B;AAC3B,2DAAiC;AACjC,gEAAsC;AACtC,+DAAqC;AACrC,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC;AACnC,6DAAmC;AACnC,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,mEAAyC;AACzC,wDAA8B;AAC9B,8DAAoC;AACpC,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sDAA4B;AAC5B,uEAA6C;AAC7C,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,6DAAmC;AACnC,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scripts/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,8DAAoC;AACpC,qDAA2B;AAC3B,2DAAiC;AACjC,gEAAsC;AACtC,+DAAqC;AACrC,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC;AACnC,6DAAmC;AACnC,oDAA0B;AAC1B,yDAA+B;AAC/B,wDAA8B;AAC9B,mEAAyC;AACzC,wDAA8B;AAC9B,8DAAoC;AACpC,uDAA6B;AAC7B,yDAA+B;AAC/B,yDAA+B;AAC/B,0DAAgC;AAChC,sDAA4B;AAC5B,uEAA6C;AAC7C,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,8DAAoC;AACpC,6DAAmC;AACnC,wEAA8C"}
@@ -174,14 +174,14 @@ local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
174
174
  end
175
175
  end
176
176
  --[[
177
- Function to remove debounce key if needed.
177
+ Function to remove deduplication key if needed.
178
178
  ]]
179
- local function removeDebounceKeyIfNeeded(prefixKey, debounceId)
180
- if debounceId then
181
- local debounceKey = prefixKey .. "de:" .. debounceId
182
- local pttl = rcall("PTTL", debounceKey)
179
+ local function removeDeduplicationKeyIfNeeded(prefixKey, deduplicationId)
180
+ if deduplicationId then
181
+ local deduplicationKey = prefixKey .. "de:" .. deduplicationId
182
+ local pttl = rcall("PTTL", deduplicationKey)
183
183
  if pttl == 0 or pttl == -1 then
184
- rcall("DEL", debounceKey)
184
+ rcall("DEL", deduplicationKey)
185
185
  end
186
186
  end
187
187
  end
@@ -193,7 +193,7 @@ local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey,
193
193
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
194
194
  failedReason, "prev", "waiting-children")
195
195
  local jobAttributes = rcall("HMGET", parentKey, "parent", "deid")
196
- removeDebounceKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
196
+ removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
197
197
  if jobAttributes[1] then
198
198
  local parentData = cjson.decode(jobAttributes[1])
199
199
  if parentData['fpof'] then
@@ -430,7 +430,7 @@ if (#stalling > 0) then
430
430
  local opts = cjson.decode(rawOpts)
431
431
  local removeOnFailType = type(opts["removeOnFail"])
432
432
  rcall("ZADD", failedKey, timestamp, jobId)
433
- removeDebounceKeyIfNeeded(queueKeyPrefix, jobAttributes[3])
433
+ removeDeduplicationKeyIfNeeded(queueKeyPrefix, jobAttributes[3])
434
434
  local failedReason =
435
435
  "job stalled more than allowable limit"
436
436
  rcall("HMSET", jobKey, "failedReason", failedReason,
@@ -485,7 +485,7 @@ if (#stalling > 0) then
485
485
  end
486
486
  table.insert(failed, jobId)
487
487
  else
488
- local target, isPausedOrMaxed=
488
+ local target, isPausedOrMaxed =
489
489
  getTargetQueueList(metaKey, activeKey, waitKey, pausedKey)
490
490
  -- Move the job back to the wait queue, to immediately be picked up by a waiting worker.
491
491
  addJobInTargetList(target, markerKey, "RPUSH", isPausedOrMaxed, jobId)
@@ -267,14 +267,14 @@ local function moveParentToWaitIfNeeded(parentQueueKey, parentDependenciesKey,
267
267
  end
268
268
  end
269
269
  --[[
270
- Function to remove debounce key if needed.
270
+ Function to remove deduplication key if needed.
271
271
  ]]
272
- local function removeDebounceKeyIfNeeded(prefixKey, debounceId)
273
- if debounceId then
274
- local debounceKey = prefixKey .. "de:" .. debounceId
275
- local pttl = rcall("PTTL", debounceKey)
272
+ local function removeDeduplicationKeyIfNeeded(prefixKey, deduplicationId)
273
+ if deduplicationId then
274
+ local deduplicationKey = prefixKey .. "de:" .. deduplicationId
275
+ local pttl = rcall("PTTL", deduplicationKey)
276
276
  if pttl == 0 or pttl == -1 then
277
- rcall("DEL", debounceKey)
277
+ rcall("DEL", deduplicationKey)
278
278
  end
279
279
  end
280
280
  end
@@ -286,7 +286,7 @@ local function moveParentFromWaitingChildrenToFailed( parentQueueKey, parentKey,
286
286
  rcall("XADD", parentQueueKey .. ":events", "*", "event", "failed", "jobId", parentId, "failedReason",
287
287
  failedReason, "prev", "waiting-children")
288
288
  local jobAttributes = rcall("HMGET", parentKey, "parent", "deid")
289
- removeDebounceKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
289
+ removeDeduplicationKeyIfNeeded(parentQueueKey .. ":", jobAttributes[2])
290
290
  if jobAttributes[1] then
291
291
  local parentData = cjson.decode(jobAttributes[1])
292
292
  if parentData['fpof'] then
@@ -606,7 +606,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- // Make sure job exists
606
606
  -- Trim events before emiting them to avoid trimming events emitted in this script
607
607
  trimEvents(metaKey, eventStreamKey)
608
608
  local prefix = ARGV[7]
609
- removeDebounceKeyIfNeeded(prefix, jobAttributes[3])
609
+ removeDeduplicationKeyIfNeeded(prefix, jobAttributes[3])
610
610
  -- If job has a parent we need to
611
611
  -- 1) remove this job id from parents dependencies
612
612
  -- 2) move the job Id to parent "processed" set
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateJobOption = void 0;
4
+ const content = `--[[
5
+ Update a job option
6
+ Input:
7
+ KEYS[1] Job id key
8
+ ARGV[1] field
9
+ ARGV[2] value
10
+ Output:
11
+ 0 - OK
12
+ -1 - Missing job.
13
+ ]]
14
+ local rcall = redis.call
15
+ if rcall("EXISTS", KEYS[1]) == 1 then -- // Make sure job exists
16
+ local opts = rcall("HGET", KEYS[1], "opts")
17
+ local jsonOpts = cjson.decode(opts)
18
+ jsonOpts[ARGV[1]] = ARGV[2]
19
+ rcall("HSET", KEYS[1], "opts", cjson.encode(jsonOpts))
20
+ return 0
21
+ else
22
+ return -1
23
+ end
24
+ `;
25
+ exports.updateJobOption = {
26
+ name: 'updateJobOption',
27
+ content,
28
+ keys: 1,
29
+ };
30
+ //# sourceMappingURL=updateJobOption-1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateJobOption-1.js","sourceRoot":"","sources":["../../../src/scripts/updateJobOption-1.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;CAoBf,CAAC;AACW,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,iBAAiB;IACvB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}