bullmq 1.59.4 → 1.60.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/bullmq.d.ts CHANGED
@@ -1245,11 +1245,15 @@ export declare interface QueueOptions extends QueueBaseOptions {
1245
1245
  * jobs, etc, will not work correctly or at all.
1246
1246
  *
1247
1247
  */
1248
- export declare class QueueScheduler extends QueueBase implements QueueSchedulerDeclaration {
1248
+ export declare class QueueScheduler extends QueueBase {
1249
1249
  private nextTimestamp;
1250
1250
  private isBlocked;
1251
1251
  private running;
1252
1252
  constructor(name: string, { connection, autorun, ...opts }?: QueueSchedulerOptions);
1253
+ emit<U extends keyof QueueSchedulerListener>(event: U, ...args: Parameters<QueueSchedulerListener[U]>): boolean;
1254
+ off<U extends keyof QueueSchedulerListener>(eventName: U, listener: QueueSchedulerListener[U]): this;
1255
+ on<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
1256
+ once<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
1253
1257
  run(): Promise<void>;
1254
1258
  isRunning(): boolean;
1255
1259
  private readDelayedData;
@@ -1258,10 +1262,19 @@ export declare class QueueScheduler extends QueueBase implements QueueSchedulerD
1258
1262
  close(): Promise<void>;
1259
1263
  }
1260
1264
 
1261
- export declare interface QueueSchedulerDeclaration {
1262
- on(event: 'stalled', listener: (jobId: string, prev: string) => void): this;
1263
- on(event: 'failed', listener: (jobId: string, failedReason: Error, prev: string) => void): this;
1264
- on(event: string, listener: Function): this;
1265
+ export declare interface QueueSchedulerListener {
1266
+ /**
1267
+ * Listen to 'stalled' event.
1268
+ *
1269
+ * This event is triggered when a job gets stalled.
1270
+ */
1271
+ stalled: (jobId: string, prev: string) => void;
1272
+ /**
1273
+ * Listen to 'failed' event.
1274
+ *
1275
+ * This event is triggered when a job has thrown an exception.
1276
+ */
1277
+ failed: (jobId: string, failedReason: Error, prev: string) => void;
1265
1278
  }
1266
1279
 
1267
1280
  /**
@@ -1,9 +1,18 @@
1
1
  import { QueueSchedulerOptions } from '../interfaces';
2
2
  import { QueueBase } from './queue-base';
3
- export interface QueueSchedulerDeclaration {
4
- on(event: 'stalled', listener: (jobId: string, prev: string) => void): this;
5
- on(event: 'failed', listener: (jobId: string, failedReason: Error, prev: string) => void): this;
6
- on(event: string, listener: Function): this;
3
+ export interface QueueSchedulerListener {
4
+ /**
5
+ * Listen to 'stalled' event.
6
+ *
7
+ * This event is triggered when a job gets stalled.
8
+ */
9
+ stalled: (jobId: string, prev: string) => void;
10
+ /**
11
+ * Listen to 'failed' event.
12
+ *
13
+ * This event is triggered when a job has thrown an exception.
14
+ */
15
+ failed: (jobId: string, failedReason: Error, prev: string) => void;
7
16
  }
8
17
  /**
9
18
  * This class is just used for some automatic bookkeeping of the queue,
@@ -21,11 +30,15 @@ export interface QueueSchedulerDeclaration {
21
30
  * jobs, etc, will not work correctly or at all.
22
31
  *
23
32
  */
24
- export declare class QueueScheduler extends QueueBase implements QueueSchedulerDeclaration {
33
+ export declare class QueueScheduler extends QueueBase {
25
34
  private nextTimestamp;
26
35
  private isBlocked;
27
36
  private running;
28
37
  constructor(name: string, { connection, autorun, ...opts }?: QueueSchedulerOptions);
38
+ emit<U extends keyof QueueSchedulerListener>(event: U, ...args: Parameters<QueueSchedulerListener[U]>): boolean;
39
+ off<U extends keyof QueueSchedulerListener>(eventName: U, listener: QueueSchedulerListener[U]): this;
40
+ on<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
41
+ once<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
29
42
  run(): Promise<void>;
30
43
  isRunning(): boolean;
31
44
  private readDelayedData;
@@ -39,6 +39,21 @@ class QueueScheduler extends queue_base_1.QueueBase {
39
39
  });
40
40
  }
41
41
  }
42
+ emit(event, ...args) {
43
+ return super.emit(event, ...args);
44
+ }
45
+ off(eventName, listener) {
46
+ super.off(eventName, listener);
47
+ return this;
48
+ }
49
+ on(event, listener) {
50
+ super.on(event, listener);
51
+ return this;
52
+ }
53
+ once(event, listener) {
54
+ super.once(event, listener);
55
+ return this;
56
+ }
42
57
  async run() {
43
58
  if (!this.running) {
44
59
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"queue-scheduler.js","sourceRoot":"","sources":["../../../src/classes/queue-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-scheduler.js","sourceRoot":"","sources":["../../../src/classes/queue-scheduler.ts"],"names":[],"mappings":"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"}
@@ -32,27 +32,21 @@ if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
32
  return "delayed"
33
33
  end
34
34
 
35
- local function item_in_list (list, item)
36
- for _, v in pairs(list) do
37
- if v == item then
38
- return 1
39
- end
40
- end
41
- return nil
42
- end
35
+ -- Includes
36
+ --- @include "includes/checkItemInList"
43
37
 
44
38
  local active_items = redis.call("LRANGE", KEYS[4] , 0, -1)
45
- if item_in_list(active_items, ARGV[1]) ~= nil then
39
+ if checkItemInList(active_items, ARGV[1]) ~= nil then
46
40
  return "active"
47
41
  end
48
42
 
49
43
  local wait_items = redis.call("LRANGE", KEYS[5] , 0, -1)
50
- if item_in_list(wait_items, ARGV[1]) ~= nil then
44
+ if checkItemInList(wait_items, ARGV[1]) ~= nil then
51
45
  return "waiting"
52
46
  end
53
47
 
54
48
  local paused_items = redis.call("LRANGE", KEYS[6] , 0, -1)
55
- if item_in_list(paused_items, ARGV[1]) ~= nil then
49
+ if checkItemInList(paused_items, ARGV[1]) ~= nil then
56
50
  return "waiting"
57
51
  end
58
52
 
@@ -0,0 +1,12 @@
1
+ --[[
2
+ Functions to check if a item belongs to a list.
3
+ ]]
4
+
5
+ local function checkItemInList(list, item)
6
+ for _, v in pairs(list) do
7
+ if v == item then
8
+ return 1
9
+ end
10
+ end
11
+ return nil
12
+ end
@@ -2,7 +2,8 @@
2
2
  Validate and move or add dependencies to parent.
3
3
  ]]
4
4
 
5
- local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey, parentId, jobIdKey, returnvalue )
5
+ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
6
+ parentId, jobIdKey, returnvalue )
6
7
  local processedSet = parentKey .. ":processed"
7
8
  rcall("HSET", processedSet, jobIdKey, returnvalue)
8
9
  local activeParent = rcall("ZSCORE", parentQueueKey .. ":waiting-children", parentId)
@@ -1,20 +1,16 @@
1
1
  --[[
2
- Checks if job is in a given list.
2
+ Checks if job is in a given list.
3
3
 
4
- Input:
5
- KEYS[1]
6
- ARGV[1]
4
+ Input:
5
+ KEYS[1]
6
+ ARGV[1]
7
7
 
8
- Output:
9
- 1 if element found in the list.
8
+ Output:
9
+ 1 if element found in the list.
10
10
  ]]
11
- local function item_in_list (list, item)
12
- for _, v in pairs(list) do
13
- if v == item then
14
- return 1
15
- end
16
- end
17
- return nil
18
- end
11
+
12
+ -- Includes
13
+ --- @include "includes/checkItemInList"
14
+
19
15
  local items = redis.call("LRANGE", KEYS[1] , 0, -1)
20
- return item_in_list(items, ARGV[1])
16
+ return checkItemInList(items, ARGV[1])
@@ -105,7 +105,8 @@ if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
105
105
  if removeJobs ~= 1 then
106
106
  -- Add to complete/failed set
107
107
  rcall("ZADD", KEYS[2], ARGV[2], jobId)
108
- rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn", ARGV[2]) -- "returnvalue" / "failedReason" and "finishedOn"
108
+ rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn",
109
+ ARGV[2]) -- "returnvalue" / "failedReason" and "finishedOn"
109
110
 
110
111
  -- Remove old jobs?
111
112
  if removeJobs and removeJobs > 1 then
@@ -15,7 +15,7 @@
15
15
 
16
16
  -- The queue needs to be "paused" or it will return an error
17
17
  -- If the queue has currently active jobs then the script by default will return error,
18
- -- however this behaviour can be overrided using the `force` option.
18
+ -- however this behaviour can be overrided using the 'force' option.
19
19
  local maxCount = tonumber(ARGV[1])
20
20
  local baseKey = KEYS[2]
21
21
 
@@ -1,14 +1,14 @@
1
1
  --[[
2
2
  Release lock
3
3
 
4
- Input:
5
- KEYS[1] 'lock',
4
+ Input:
5
+ KEYS[1] 'lock',
6
+
7
+ ARGV[1] token
8
+ ARGV[2] lock duration in milliseconds
6
9
 
7
- ARGV[1] token
8
- ARGV[2] lock duration in milliseconds
9
-
10
- Output:
11
- "OK" if lock extented succesfully.
10
+ Output:
11
+ "OK" if lock extented succesfully.
12
12
  ]]
13
13
  local rcall = redis.call
14
14
 
@@ -2,11 +2,11 @@
2
2
  Remove a job from all the queues it may be in as well as all its data.
3
3
  In order to be able to remove a job, it cannot be active.
4
4
 
5
- Input:
5
+ Input:
6
6
  KEYS[1] jobId
7
7
  ARGV[1] jobId
8
8
 
9
- Events:
9
+ Events:
10
10
  'removed'
11
11
  ]]
12
12
 
@@ -2,7 +2,7 @@
2
2
  Updates the delay set, by picking a delayed job that should
3
3
  be processed now.
4
4
 
5
- Input:
5
+ Input:
6
6
  KEYS[1] 'delayed'
7
7
  KEYS[2] 'wait'
8
8
  KEYS[3] 'priority'
@@ -1,9 +1,18 @@
1
1
  import { QueueSchedulerOptions } from '../interfaces';
2
2
  import { QueueBase } from './queue-base';
3
- export interface QueueSchedulerDeclaration {
4
- on(event: 'stalled', listener: (jobId: string, prev: string) => void): this;
5
- on(event: 'failed', listener: (jobId: string, failedReason: Error, prev: string) => void): this;
6
- on(event: string, listener: Function): this;
3
+ export interface QueueSchedulerListener {
4
+ /**
5
+ * Listen to 'stalled' event.
6
+ *
7
+ * This event is triggered when a job gets stalled.
8
+ */
9
+ stalled: (jobId: string, prev: string) => void;
10
+ /**
11
+ * Listen to 'failed' event.
12
+ *
13
+ * This event is triggered when a job has thrown an exception.
14
+ */
15
+ failed: (jobId: string, failedReason: Error, prev: string) => void;
7
16
  }
8
17
  /**
9
18
  * This class is just used for some automatic bookkeeping of the queue,
@@ -21,11 +30,15 @@ export interface QueueSchedulerDeclaration {
21
30
  * jobs, etc, will not work correctly or at all.
22
31
  *
23
32
  */
24
- export declare class QueueScheduler extends QueueBase implements QueueSchedulerDeclaration {
33
+ export declare class QueueScheduler extends QueueBase {
25
34
  private nextTimestamp;
26
35
  private isBlocked;
27
36
  private running;
28
37
  constructor(name: string, { connection, autorun, ...opts }?: QueueSchedulerOptions);
38
+ emit<U extends keyof QueueSchedulerListener>(event: U, ...args: Parameters<QueueSchedulerListener[U]>): boolean;
39
+ off<U extends keyof QueueSchedulerListener>(eventName: U, listener: QueueSchedulerListener[U]): this;
40
+ on<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
41
+ once<U extends keyof QueueSchedulerListener>(event: U, listener: QueueSchedulerListener[U]): this;
29
42
  run(): Promise<void>;
30
43
  isRunning(): boolean;
31
44
  private readDelayedData;
@@ -36,6 +36,21 @@ export class QueueScheduler extends QueueBase {
36
36
  });
37
37
  }
38
38
  }
39
+ emit(event, ...args) {
40
+ return super.emit(event, ...args);
41
+ }
42
+ off(eventName, listener) {
43
+ super.off(eventName, listener);
44
+ return this;
45
+ }
46
+ on(event, listener) {
47
+ super.on(event, listener);
48
+ return this;
49
+ }
50
+ once(event, listener) {
51
+ super.once(event, listener);
52
+ return this;
53
+ }
39
54
  async run() {
40
55
  if (!this.running) {
41
56
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"queue-scheduler.js","sourceRoot":"","sources":["../../../src/classes/queue-scheduler.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,cACX,SAAQ,SAAS;IAOjB,YACE,IAAY,EACZ,KAAiE,EAAE;YAAnE,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,OAAuC,EAAlC,IAAI,cAArC,yBAAuC,CAAF;QAErC,KAAK,CAAC,IAAI,gCACR,eAAe,EAAE,CAAC,EAClB,eAAe,EAAE,KAAK,IACnB,IAAI,KACP,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;gBACrC,CAAC,CAAe,UAAW,CAAC,SAAS,EAAE;gBACvC,CAAC,CAAC,UAAU,EACd,gBAAgB,EAAE,KAAK,IACvB,CAAC;QAhBG,kBAAa,GAAG,MAAM,CAAC,SAAS,CAAC;QACjC,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAG,KAAK,CAAC;QAgBtB,IAAI,CAAE,IAAI,CAAC,IAA8B,CAAC,eAAe,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,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,cAAc,EAAE,CAAC;gBAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAA6B,CAAC;gBAEhD,MAAM,CAAC,aAAa,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CACjE,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;gBACF,IAAI,YAAY,GAAG,QAAQ,CAAC;gBAE5B,IAAI,aAAa,EAAE;oBACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;iBACpC;gBAED,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpB,2DAA2D;oBAC3D,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAEnC,iEAAiE;oBACjE,2CAA2C;oBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAElD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CACvD,CAAC;oBAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CACrC,MAAM,EACN,GAAG,EACH,YAAY,EACZ,SAAS,CACV,CAAC;oBAEF,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;wBACnB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACtC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrC,MAAM,aAAa,GAAW,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAE3D,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;gCACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;6BACpC;yBACF;wBAED,EAAE;wBACF,gEAAgE;wBAChE,6BAA6B;wBAC7B,EAAE;wBACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;4BACjB,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;yBAC7C;qBACF;oBAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;oBAEvC,IAAI,KAAK,IAAI,CAAC,EAAE;wBACd,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAC3D,IAAI,aAAa,EAAE;4BACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;4BACnC,YAAY,GAAG,EAAE,CAAC;yBACnB;6BAAM;4BACL,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC;yBACvC;qBACF;iBACF;gBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,MAAM,KAAK,CAAC;aACb;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,MAAmB,EACnB,GAAW,EACX,YAAoB,EACpB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,IAAI,CAAC;YACT,IAAI,SAAS,EAAE;gBACb,IAAI;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CACvB,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,EACH,YAAY,CACb,CAAC;iBACH;gBAAC,OAAO,GAAG,EAAE;oBACZ,yCAAyC;oBACzC,IAAY,GAAI,CAAC,OAAO,KAAK,uBAAuB,EAAE;wBACpD,MAAM,GAAG,CAAC;qBACX;iBACF;wBAAS;oBACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;iBAAM;gBACL,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;aACzD;YAED,mGAAmG;YACnG,OAAO,IAAW,CAAC;SACpB;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAChD;QACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAEpE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE,CAC/B,IAAI,CAAC,IAAI,CACP,QAAQ,EACR,KAAK,EACL,IAAI,KAAK,CAAC,uCAAuC,CAAC,EAClD,QAAQ,CACT,CACF,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC3E;IACH,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"queue-scheduler.js","sourceRoot":"","sources":["../../../src/classes/queue-scheduler.ts"],"names":[],"mappings":"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"}
@@ -32,27 +32,21 @@ if redis.call("ZSCORE", KEYS[3], ARGV[1]) ~= false then
32
32
  return "delayed"
33
33
  end
34
34
 
35
- local function item_in_list (list, item)
36
- for _, v in pairs(list) do
37
- if v == item then
38
- return 1
39
- end
40
- end
41
- return nil
42
- end
35
+ -- Includes
36
+ --- @include "includes/checkItemInList"
43
37
 
44
38
  local active_items = redis.call("LRANGE", KEYS[4] , 0, -1)
45
- if item_in_list(active_items, ARGV[1]) ~= nil then
39
+ if checkItemInList(active_items, ARGV[1]) ~= nil then
46
40
  return "active"
47
41
  end
48
42
 
49
43
  local wait_items = redis.call("LRANGE", KEYS[5] , 0, -1)
50
- if item_in_list(wait_items, ARGV[1]) ~= nil then
44
+ if checkItemInList(wait_items, ARGV[1]) ~= nil then
51
45
  return "waiting"
52
46
  end
53
47
 
54
48
  local paused_items = redis.call("LRANGE", KEYS[6] , 0, -1)
55
- if item_in_list(paused_items, ARGV[1]) ~= nil then
49
+ if checkItemInList(paused_items, ARGV[1]) ~= nil then
56
50
  return "waiting"
57
51
  end
58
52
 
@@ -0,0 +1,12 @@
1
+ --[[
2
+ Functions to check if a item belongs to a list.
3
+ ]]
4
+
5
+ local function checkItemInList(list, item)
6
+ for _, v in pairs(list) do
7
+ if v == item then
8
+ return 1
9
+ end
10
+ end
11
+ return nil
12
+ end
@@ -2,7 +2,8 @@
2
2
  Validate and move or add dependencies to parent.
3
3
  ]]
4
4
 
5
- local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey, parentId, jobIdKey, returnvalue )
5
+ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
6
+ parentId, jobIdKey, returnvalue )
6
7
  local processedSet = parentKey .. ":processed"
7
8
  rcall("HSET", processedSet, jobIdKey, returnvalue)
8
9
  local activeParent = rcall("ZSCORE", parentQueueKey .. ":waiting-children", parentId)
@@ -1,20 +1,16 @@
1
1
  --[[
2
- Checks if job is in a given list.
2
+ Checks if job is in a given list.
3
3
 
4
- Input:
5
- KEYS[1]
6
- ARGV[1]
4
+ Input:
5
+ KEYS[1]
6
+ ARGV[1]
7
7
 
8
- Output:
9
- 1 if element found in the list.
8
+ Output:
9
+ 1 if element found in the list.
10
10
  ]]
11
- local function item_in_list (list, item)
12
- for _, v in pairs(list) do
13
- if v == item then
14
- return 1
15
- end
16
- end
17
- return nil
18
- end
11
+
12
+ -- Includes
13
+ --- @include "includes/checkItemInList"
14
+
19
15
  local items = redis.call("LRANGE", KEYS[1] , 0, -1)
20
- return item_in_list(items, ARGV[1])
16
+ return checkItemInList(items, ARGV[1])
@@ -105,7 +105,8 @@ if rcall("EXISTS",jobIdKey) == 1 then -- // Make sure job exists
105
105
  if removeJobs ~= 1 then
106
106
  -- Add to complete/failed set
107
107
  rcall("ZADD", KEYS[2], ARGV[2], jobId)
108
- rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn", ARGV[2]) -- "returnvalue" / "failedReason" and "finishedOn"
108
+ rcall("HMSET", jobIdKey, ARGV[3], ARGV[4], "finishedOn",
109
+ ARGV[2]) -- "returnvalue" / "failedReason" and "finishedOn"
109
110
 
110
111
  -- Remove old jobs?
111
112
  if removeJobs and removeJobs > 1 then
@@ -15,7 +15,7 @@
15
15
 
16
16
  -- The queue needs to be "paused" or it will return an error
17
17
  -- If the queue has currently active jobs then the script by default will return error,
18
- -- however this behaviour can be overrided using the `force` option.
18
+ -- however this behaviour can be overrided using the 'force' option.
19
19
  local maxCount = tonumber(ARGV[1])
20
20
  local baseKey = KEYS[2]
21
21
 
@@ -1,14 +1,14 @@
1
1
  --[[
2
2
  Release lock
3
3
 
4
- Input:
5
- KEYS[1] 'lock',
4
+ Input:
5
+ KEYS[1] 'lock',
6
+
7
+ ARGV[1] token
8
+ ARGV[2] lock duration in milliseconds
6
9
 
7
- ARGV[1] token
8
- ARGV[2] lock duration in milliseconds
9
-
10
- Output:
11
- "OK" if lock extented succesfully.
10
+ Output:
11
+ "OK" if lock extented succesfully.
12
12
  ]]
13
13
  local rcall = redis.call
14
14
 
@@ -2,11 +2,11 @@
2
2
  Remove a job from all the queues it may be in as well as all its data.
3
3
  In order to be able to remove a job, it cannot be active.
4
4
 
5
- Input:
5
+ Input:
6
6
  KEYS[1] jobId
7
7
  ARGV[1] jobId
8
8
 
9
- Events:
9
+ Events:
10
10
  'removed'
11
11
  ]]
12
12
 
@@ -2,7 +2,7 @@
2
2
  Updates the delay set, by picking a delayed job that should
3
3
  be processed now.
4
4
 
5
- Input:
5
+ Input:
6
6
  KEYS[1] 'delayed'
7
7
  KEYS[2] 'wait'
8
8
  KEYS[3] 'priority'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bullmq",
3
- "version": "1.59.4",
3
+ "version": "1.60.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",