bullmq 1.78.0 → 1.79.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 (59) hide show
  1. package/README.md +40 -5
  2. package/dist/bullmq.d.ts +22 -7
  3. package/dist/cjs/classes/job.d.ts +2 -2
  4. package/dist/cjs/classes/job.js.map +1 -1
  5. package/dist/cjs/classes/queue-base.d.ts +1 -1
  6. package/dist/cjs/classes/queue-base.js +3 -2
  7. package/dist/cjs/classes/queue-base.js.map +1 -1
  8. package/dist/cjs/classes/queue-events.js +8 -0
  9. package/dist/cjs/classes/queue-events.js.map +1 -1
  10. package/dist/cjs/classes/queue-getters.d.ts +10 -1
  11. package/dist/cjs/classes/queue-getters.js +21 -21
  12. package/dist/cjs/classes/queue-getters.js.map +1 -1
  13. package/dist/cjs/classes/queue-scheduler.d.ts +0 -1
  14. package/dist/cjs/classes/queue-scheduler.js +2 -6
  15. package/dist/cjs/classes/queue-scheduler.js.map +1 -1
  16. package/dist/cjs/classes/queue.d.ts +1 -0
  17. package/dist/cjs/classes/queue.js +8 -0
  18. package/dist/cjs/classes/queue.js.map +1 -1
  19. package/dist/cjs/classes/redis-connection.js +2 -1
  20. package/dist/cjs/classes/redis-connection.js.map +1 -1
  21. package/dist/cjs/classes/repeat.js.map +1 -1
  22. package/dist/cjs/classes/scripts.d.ts +2 -2
  23. package/dist/cjs/classes/scripts.js.map +1 -1
  24. package/dist/cjs/classes/worker.js +1 -1
  25. package/dist/cjs/classes/worker.js.map +1 -1
  26. package/dist/cjs/commands/cleanJobsInSet-2.lua +67 -41
  27. package/dist/cjs/interfaces/backoff-options.d.ts +1 -1
  28. package/dist/cjs/utils.d.ts +3 -0
  29. package/dist/cjs/utils.js +4 -1
  30. package/dist/cjs/utils.js.map +1 -1
  31. package/dist/esm/classes/job.d.ts +2 -2
  32. package/dist/esm/classes/job.js.map +1 -1
  33. package/dist/esm/classes/queue-base.d.ts +1 -1
  34. package/dist/esm/classes/queue-base.js +3 -2
  35. package/dist/esm/classes/queue-base.js.map +1 -1
  36. package/dist/esm/classes/queue-events.js +9 -1
  37. package/dist/esm/classes/queue-events.js.map +1 -1
  38. package/dist/esm/classes/queue-getters.d.ts +10 -1
  39. package/dist/esm/classes/queue-getters.js +22 -22
  40. package/dist/esm/classes/queue-getters.js.map +1 -1
  41. package/dist/esm/classes/queue-scheduler.d.ts +0 -1
  42. package/dist/esm/classes/queue-scheduler.js +3 -7
  43. package/dist/esm/classes/queue-scheduler.js.map +1 -1
  44. package/dist/esm/classes/queue.d.ts +1 -0
  45. package/dist/esm/classes/queue.js +8 -0
  46. package/dist/esm/classes/queue.js.map +1 -1
  47. package/dist/esm/classes/redis-connection.js +2 -1
  48. package/dist/esm/classes/redis-connection.js.map +1 -1
  49. package/dist/esm/classes/repeat.js.map +1 -1
  50. package/dist/esm/classes/scripts.d.ts +2 -2
  51. package/dist/esm/classes/scripts.js.map +1 -1
  52. package/dist/esm/classes/worker.js +2 -2
  53. package/dist/esm/classes/worker.js.map +1 -1
  54. package/dist/esm/commands/cleanJobsInSet-2.lua +67 -41
  55. package/dist/esm/interfaces/backoff-options.d.ts +1 -1
  56. package/dist/esm/utils.d.ts +3 -0
  57. package/dist/esm/utils.js +3 -0
  58. package/dist/esm/utils.js.map +1 -1
  59. package/package.json +1 -1
@@ -5,20 +5,12 @@
5
5
  KEYS[1] set key,
6
6
  KEYS[2] events stream key
7
7
 
8
- ARGV[1] jobId
8
+ ARGV[1] jobKey prefix
9
9
  ARGV[2] timestamp
10
10
  ARGV[3] limit the number of jobs to be removed. 0 is unlimited
11
11
  ARGV[4] set name, can be any of 'wait', 'active', 'paused', 'delayed', 'completed', or 'failed'
12
12
  ]]
13
13
  local rcall = redis.call
14
- local command = "ZRANGE"
15
- local isList = false
16
-
17
- if ARGV[4] == "wait" or ARGV[4] == "active" or ARGV[4] == "paused" then
18
- command = "LRANGE"
19
- isList = true
20
- end
21
-
22
14
  local rangeStart = 0
23
15
  local rangeEnd = -1
24
16
 
@@ -38,64 +30,98 @@ end
38
30
  --- @include "includes/batches"
39
31
  --- @include "includes/removeJob"
40
32
 
41
- local jobs = rcall(command, KEYS[1], rangeStart, rangeEnd)
42
- local deleted = {}
43
- local deletedCount = 0
44
- local jobTS
45
- local deletionMarker = ''
46
- local jobIdsLen = #jobs
47
- if ARGV[4] == "active" then
33
+ local function getTimestamp(jobKey, attributes)
34
+ if #attributes == 1 then
35
+ return rcall("HGET", jobKey, attributes[1])
36
+ end
37
+
38
+ local jobTs
39
+ for _, ts in ipairs(rcall("HMGET", jobKey, unpack(attributes))) do
40
+ if (ts) then
41
+ jobTs = ts
42
+ break
43
+ end
44
+ end
45
+
46
+ return jobTs
47
+ end
48
+
49
+ local function cleanList(listKey, jobKeyPrefix, rangeStart, rangeEnd, timestamp, skipCheckLock)
50
+ local jobs = rcall("LRANGE", listKey, rangeStart, rangeEnd)
51
+ local deleted = {}
52
+ local deletedCount = 0
53
+ local jobTS
54
+ local deletionMarker = ''
55
+ local jobIdsLen = #jobs
48
56
  for i, job in ipairs(jobs) do
49
57
  if limit > 0 and deletedCount >= limit then
50
58
  break
51
59
  end
52
60
 
53
- local jobKey = ARGV[1] .. job
54
- if (rcall("EXISTS", jobKey .. ":lock") == 0) then
55
- jobTS = rcall("HGET", jobKey, "timestamp")
56
- if (not jobTS or jobTS < ARGV[2]) then
61
+ local jobKey = jobKeyPrefix .. job
62
+ if (skipCheckLock or rcall("EXISTS", jobKey .. ":lock") == 0) then
63
+ -- Find the right timestamp of the job to compare to maxTimestamp:
64
+ -- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
65
+ -- * processedOn represents when the job was last attempted, but it doesn't get populated until the job is first tried
66
+ -- * timestamp is the original job submission time
67
+ -- Fetch all three of these (in that order) and use the first one that is set so that we'll leave jobs that have been active within the grace period:
68
+ jobTS = getTimestamp(jobKey, {"finishedOn", "processedOn", "timestamp"})
69
+ if (not jobTS or jobTS < timestamp) then
57
70
  -- replace the entry with a deletion marker; the actual deletion will
58
71
  -- occur at the end of the script
59
- rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
60
- removeJob(job, true, ARGV[1])
72
+ rcall("LSET", listKey, rangeEnd - jobIdsLen + i, deletionMarker)
73
+ removeJob(job, true, jobKeyPrefix)
61
74
  deletedCount = deletedCount + 1
62
75
  table.insert(deleted, job)
63
76
  end
64
77
  end
65
78
  end
66
- else
79
+
80
+ rcall("LREM", listKey, 0, deletionMarker)
81
+
82
+ return {deleted, deletedCount}
83
+ end
84
+
85
+ local function cleanSet(setKey, jobKeyPrefix, rangeStart, rangeEnd, timestamp, attributes)
86
+ local jobs = rcall("ZRANGE", setKey, rangeStart, rangeEnd)
87
+ local deleted = {}
88
+ local deletedCount = 0
89
+ local jobTS
67
90
  for i, job in ipairs(jobs) do
68
91
  if limit > 0 and deletedCount >= limit then
69
92
  break
70
93
  end
71
94
 
72
- local jobKey = ARGV[1] .. job
73
- jobTS = rcall("HGET", jobKey, "timestamp")
74
- if (not jobTS or jobTS < ARGV[2]) then
75
- if isList then
76
- -- replace the entry with a deletion marker; the actual deletion will
77
- -- occur at the end of the script
78
- rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
79
- end
80
- removeJob(job, true, ARGV[1])
95
+ local jobKey = jobKeyPrefix .. job
96
+ -- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
97
+ jobTS = getTimestamp(jobKey, attributes)
98
+ if (not jobTS or jobTS < timestamp) then
99
+ removeJob(job, true, jobKeyPrefix)
81
100
  deletedCount = deletedCount + 1
82
101
  table.insert(deleted, job)
83
102
  end
84
103
  end
85
104
 
86
- if not isList then
87
- if(#deleted > 0) then
88
- for from, to in batches(#deleted, 7000) do
89
- rcall("ZREM", KEYS[1], unpack(deleted, from, to))
90
- end
105
+ if(#deleted > 0) then
106
+ for from, to in batches(#deleted, 7000) do
107
+ rcall("ZREM", setKey, unpack(deleted, from, to))
91
108
  end
92
109
  end
110
+
111
+ return {deleted, deletedCount}
93
112
  end
94
113
 
95
- if isList then
96
- rcall("LREM", KEYS[1], 0, deletionMarker)
114
+ local result
115
+ if ARGV[4] == "active" then
116
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], false)
117
+ elseif ARGV[4] == "delayed" then
118
+ result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], {"processedOn", "timestamp"})
119
+ elseif ARGV[4] == "wait" or ARGV[4] == "paused" then
120
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], true)
121
+ else
122
+ result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], {"finishedOn"} )
97
123
  end
98
124
 
99
- rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", deletedCount)
125
+ rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", result[2])
100
126
 
101
- return deleted
127
+ return result[1]
@@ -7,7 +7,7 @@ export interface BackoffOptions {
7
7
  /**
8
8
  * Name of the backoff strategy.
9
9
  */
10
- type: string;
10
+ type: 'fixed' | 'exponential' | (string & {});
11
11
  /**
12
12
  * Delay in milliseconds.
13
13
  */
@@ -31,4 +31,7 @@ interface procSendLike {
31
31
  export declare const asyncSend: <T extends procSendLike>(proc: T, msg: any) => Promise<void>;
32
32
  export declare const childSend: (proc: NodeJS.Process, msg: ChildMessage) => Promise<void>;
33
33
  export declare const parentSend: (child: ChildProcess, msg: ParentMessage) => Promise<void>;
34
+ export declare const WORKER_SUFFIX = ":w";
35
+ export declare const QUEUE_SCHEDULER_SUFFIX = ":qs";
36
+ export declare const QUEUE_EVENT_SUFFIX = ":qe";
34
37
  export {};
package/dist/esm/utils.js CHANGED
@@ -116,4 +116,7 @@ export const asyncSend = (proc, msg) => {
116
116
  };
117
117
  export const childSend = (proc, msg) => asyncSend(proc, msg);
118
118
  export const parentSend = (child, msg) => asyncSend(child, msg);
119
+ export const WORKER_SUFFIX = ':w';
120
+ export const QUEUE_SCHEDULER_SUFFIX = ':qs';
121
+ export const QUEUE_EVENT_SUFFIX = ':qe';
119
122
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,6DAA6D;AAC7D,aAAa;AACb,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAU7B,MAAM,CAAC,MAAM,WAAW,GAA6B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAErE,MAAM,UAAU,QAAQ,CACtB,EAAyB,EACzB,GAAQ,EACR,IAAW;IAEX,IAAI;QACF,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;QACtB,OAAO,WAAW,CAAC;KACpB;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAmB,EACnB,SAAiB,EACjB,MAAM,GAAG,MAAM;IAEf,IAAI,MAAM,YAAY,OAAO,EAAE;QAC7B,6BAA6B;QAC7B,kDAAkD;QAClD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B;IACD,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,IAAI,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;YAC/B,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmC;IAC9D,IAAI,IAAI,EAAE;QACR,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;KACnC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAoB,EACpB,IAAS,EACT,SAAuB;IAEvB,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACzC,IAAI,YAAY,IAAI,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,EAAE;QACtD,OAAO,GAAG,KAAK,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAClC,0CAA0C,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEhC,MAAM,UAAU,oBAAoB,CAAC,KAAY;IAC/C,MAAM,YAAY,GAAG,GAAI,KAAe,CAAC,OAAO,EAAE,CAAC;IACnD,OAAO,CACL,YAAY,KAAK,2BAA2B;QAC5C,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CACvC,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAO,EACP,GAAQ,EACO,EAAE;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC5B,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAoB,EACpB,GAAiB,EACF,EAAE,CAAC,SAAS,CAAiB,IAAI,EAAE,GAAG,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAmB,EACnB,GAAkB,EACH,EAAE,CAAC,SAAS,CAAe,KAAK,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bullmq",
3
- "version": "1.78.0",
3
+ "version": "1.79.0",
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",