bullmq 3.2.5 → 3.3.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.
- package/dist/cjs/classes/queue-events.d.ts +8 -0
- package/dist/cjs/classes/queue-events.js.map +1 -1
- package/dist/cjs/commands/addJob-8.lua +3 -3
- package/dist/cjs/scripts/addJob-8.js +8 -8
- package/dist/esm/classes/queue-events.d.ts +8 -0
- package/dist/esm/classes/queue-events.js.map +1 -1
- package/dist/esm/commands/addJob-8.lua +3 -3
- package/dist/esm/scripts/addJob-8.js +8 -8
- package/package.json +1 -1
@@ -55,6 +55,14 @@ export interface QueueEventsListener extends IoredisListener {
|
|
55
55
|
* and this event will still be triggered as long as the waiting list has emptied.
|
56
56
|
*/
|
57
57
|
drained: (id: string) => void;
|
58
|
+
/**
|
59
|
+
* Listen to 'duplicated' event.
|
60
|
+
*
|
61
|
+
* This event is triggered when a job is not created because it already exist.
|
62
|
+
*/
|
63
|
+
duplicated: (args: {
|
64
|
+
jobId: string;
|
65
|
+
}, id: string) => void;
|
58
66
|
/**
|
59
67
|
* Listen to 'error' event.
|
60
68
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue-events.js","sourceRoot":"","sources":["../../../src/classes/queue-events.ts"],"names":[],"mappings":";;;;AAMA,oCAKkB;AAClB,6CAAyC;
|
1
|
+
{"version":3,"file":"queue-events.js","sourceRoot":"","sources":["../../../src/classes/queue-events.ts"],"names":[],"mappings":"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"}
|
@@ -61,6 +61,7 @@ local parentData
|
|
61
61
|
--- @include "includes/getTargetQueueList"
|
62
62
|
--- @include "includes/trimEvents"
|
63
63
|
--- @include "includes/getNextDelayedTimestamp"
|
64
|
+
--- @include "includes/updateParentDepsIfNeeded"
|
64
65
|
|
65
66
|
if parentKey ~= nil then
|
66
67
|
if rcall("EXISTS", parentKey) ~= 1 then
|
@@ -72,9 +73,6 @@ end
|
|
72
73
|
|
73
74
|
local jobCounter = rcall("INCR", KEYS[4])
|
74
75
|
|
75
|
-
-- Includes
|
76
|
-
--- @include "includes/updateParentDepsIfNeeded"
|
77
|
-
|
78
76
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
79
77
|
trimEvents(KEYS[3], KEYS[8])
|
80
78
|
|
@@ -99,6 +97,8 @@ else
|
|
99
97
|
end
|
100
98
|
rcall("HMSET", jobIdKey, "parentKey", parentKey, "parent", parentData)
|
101
99
|
end
|
100
|
+
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
101
|
+
|
102
102
|
return jobId .. "" -- convert to string
|
103
103
|
end
|
104
104
|
end
|
@@ -100,14 +100,6 @@ local function getNextDelayedTimestamp(delayedKey)
|
|
100
100
|
return nextTimestamp
|
101
101
|
end
|
102
102
|
end
|
103
|
-
if parentKey ~= nil then
|
104
|
-
if rcall("EXISTS", parentKey) ~= 1 then
|
105
|
-
return -5
|
106
|
-
end
|
107
|
-
parentData = cjson.encode(parent)
|
108
|
-
end
|
109
|
-
local jobCounter = rcall("INCR", KEYS[4])
|
110
|
-
-- Includes
|
111
103
|
--[[
|
112
104
|
Validate and move or add dependencies to parent.
|
113
105
|
]]
|
@@ -144,6 +136,13 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
|
|
144
136
|
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
145
137
|
end
|
146
138
|
end
|
139
|
+
if parentKey ~= nil then
|
140
|
+
if rcall("EXISTS", parentKey) ~= 1 then
|
141
|
+
return -5
|
142
|
+
end
|
143
|
+
parentData = cjson.encode(parent)
|
144
|
+
end
|
145
|
+
local jobCounter = rcall("INCR", KEYS[4])
|
147
146
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
148
147
|
trimEvents(KEYS[3], KEYS[8])
|
149
148
|
local parentDependenciesKey = args[7]
|
@@ -167,6 +166,7 @@ else
|
|
167
166
|
end
|
168
167
|
rcall("HMSET", jobIdKey, "parentKey", parentKey, "parent", parentData)
|
169
168
|
end
|
169
|
+
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
170
170
|
return jobId .. "" -- convert to string
|
171
171
|
end
|
172
172
|
end
|
@@ -55,6 +55,14 @@ export interface QueueEventsListener extends IoredisListener {
|
|
55
55
|
* and this event will still be triggered as long as the waiting list has emptied.
|
56
56
|
*/
|
57
57
|
drained: (id: string) => void;
|
58
|
+
/**
|
59
|
+
* Listen to 'duplicated' event.
|
60
|
+
*
|
61
|
+
* This event is triggered when a job is not created because it already exist.
|
62
|
+
*/
|
63
|
+
duplicated: (args: {
|
64
|
+
jobId: string;
|
65
|
+
}, id: string) => void;
|
58
66
|
/**
|
59
67
|
* Listen to 'error' event.
|
60
68
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"queue-events.js","sourceRoot":"","sources":["../../../src/classes/queue-events.ts"],"names":[],"mappings":";AAMA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"queue-events.js","sourceRoot":"","sources":["../../../src/classes/queue-events.ts"],"names":[],"mappings":";AAMA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgJzC;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAGxC,YACE,IAAY,EACZ,KAA8D,EAAE,EAChE,UAAmC;YADnC,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,OAAoC,EAA/B,IAAI,cAArC,yBAAuC,CAAF;QAGrC,KAAK,CACH,IAAI,kCAEC,IAAI,KACP,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;gBACrC,CAAC,CAAe,UAAW,CAAC,SAAS,EAAE;gBACvC,CAAC,CAAC,UAAU,EACd,kBAAkB,EAAE,IAAI,KAE1B,UAAU,CACX,CAAC;QAjBI,YAAO,GAAG,KAAK,CAAC;QAmBtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CACvB;YACE,eAAe,EAAE,KAAK;SACvB,EACD,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SACtD;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAAwC;QAE3C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CACD,SAAY,EACZ,QAAgC;QAEhC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAgC;QAEhC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAgC;QAEhC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI;gBACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBAEjC,IAAI;oBACF,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBACrE;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAS,GAAI,CAAC,OAAO,CAAC,EAAE;wBACvD,MAAM,GAAG,CAAC;qBACX;iBACF;gBAED,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAClC;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,MAAM,KAAK,CAAC;aACb;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAmB;QAC7C,MAAM,IAAI,GAAuB,IAAI,CAAC,IAAI,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;QAEjC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,mGAAmG;YACnG,MAAM,IAAI,GAAkB,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAC/D,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAChE,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAErC,EAAE;oBACF,gEAAgE;oBAChE,sBAAsB;oBACtB,QAAQ,IAAI,CAAC,KAAK,EAAE;wBAClB,KAAK,UAAU;4BACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM;wBACR,KAAK,WAAW;4BACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAChD,MAAM;qBACT;oBAED,MAAM,EAAE,KAAK,KAAkB,IAAI,EAAjB,QAAQ,UAAK,IAAI,EAA7B,SAAsB,CAAO,CAAC;oBAEpC,IAAI,KAAK,KAAK,SAAS,EAAE;wBACvB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;qBACtB;yBAAM;wBACL,IAAI,CAAC,IAAI,CAAC,KAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;qBAC9D;iBACF;aACF;SACF;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
@@ -61,6 +61,7 @@ local parentData
|
|
61
61
|
--- @include "includes/getTargetQueueList"
|
62
62
|
--- @include "includes/trimEvents"
|
63
63
|
--- @include "includes/getNextDelayedTimestamp"
|
64
|
+
--- @include "includes/updateParentDepsIfNeeded"
|
64
65
|
|
65
66
|
if parentKey ~= nil then
|
66
67
|
if rcall("EXISTS", parentKey) ~= 1 then
|
@@ -72,9 +73,6 @@ end
|
|
72
73
|
|
73
74
|
local jobCounter = rcall("INCR", KEYS[4])
|
74
75
|
|
75
|
-
-- Includes
|
76
|
-
--- @include "includes/updateParentDepsIfNeeded"
|
77
|
-
|
78
76
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
79
77
|
trimEvents(KEYS[3], KEYS[8])
|
80
78
|
|
@@ -99,6 +97,8 @@ else
|
|
99
97
|
end
|
100
98
|
rcall("HMSET", jobIdKey, "parentKey", parentKey, "parent", parentData)
|
101
99
|
end
|
100
|
+
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
101
|
+
|
102
102
|
return jobId .. "" -- convert to string
|
103
103
|
end
|
104
104
|
end
|
@@ -97,14 +97,6 @@ local function getNextDelayedTimestamp(delayedKey)
|
|
97
97
|
return nextTimestamp
|
98
98
|
end
|
99
99
|
end
|
100
|
-
if parentKey ~= nil then
|
101
|
-
if rcall("EXISTS", parentKey) ~= 1 then
|
102
|
-
return -5
|
103
|
-
end
|
104
|
-
parentData = cjson.encode(parent)
|
105
|
-
end
|
106
|
-
local jobCounter = rcall("INCR", KEYS[4])
|
107
|
-
-- Includes
|
108
100
|
--[[
|
109
101
|
Validate and move or add dependencies to parent.
|
110
102
|
]]
|
@@ -141,6 +133,13 @@ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDepende
|
|
141
133
|
rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
|
142
134
|
end
|
143
135
|
end
|
136
|
+
if parentKey ~= nil then
|
137
|
+
if rcall("EXISTS", parentKey) ~= 1 then
|
138
|
+
return -5
|
139
|
+
end
|
140
|
+
parentData = cjson.encode(parent)
|
141
|
+
end
|
142
|
+
local jobCounter = rcall("INCR", KEYS[4])
|
144
143
|
-- Trim events before emiting them to avoid trimming events emitted in this script
|
145
144
|
trimEvents(KEYS[3], KEYS[8])
|
146
145
|
local parentDependenciesKey = args[7]
|
@@ -164,6 +163,7 @@ else
|
|
164
163
|
end
|
165
164
|
rcall("HMSET", jobIdKey, "parentKey", parentKey, "parent", parentData)
|
166
165
|
end
|
166
|
+
rcall("XADD", KEYS[8], "*", "event", "duplicated", "jobId", jobId)
|
167
167
|
return jobId .. "" -- convert to string
|
168
168
|
end
|
169
169
|
end
|