bullmq 2.2.0 → 2.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.
Files changed (234) hide show
  1. package/dist/cjs/classes/job.d.ts +1 -1
  2. package/dist/cjs/classes/redis-connection.d.ts +6 -2
  3. package/dist/cjs/classes/redis-connection.js +12 -5
  4. package/dist/cjs/classes/redis-connection.js.map +1 -1
  5. package/dist/cjs/scripts/addJob-8.d.ts +5 -0
  6. package/dist/{esm/commands/addJob-8.lua → cjs/scripts/addJob-8.js} +83 -31
  7. package/dist/cjs/scripts/addJob-8.js.map +1 -0
  8. package/dist/cjs/scripts/changeDelay-4.d.ts +5 -0
  9. package/dist/cjs/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +11 -11
  10. package/dist/cjs/scripts/changeDelay-4.js.map +1 -0
  11. package/dist/cjs/scripts/cleanJobsInSet-2.d.ts +5 -0
  12. package/dist/cjs/scripts/cleanJobsInSet-2.js +264 -0
  13. package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
  14. package/dist/cjs/scripts/drain-4.d.ts +5 -0
  15. package/dist/cjs/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +110 -10
  16. package/dist/cjs/scripts/drain-4.js.map +1 -0
  17. package/dist/cjs/scripts/extendLock-2.d.ts +5 -0
  18. package/dist/{esm/commands/extendLock-2.lua → cjs/scripts/extendLock-2.js} +11 -4
  19. package/dist/cjs/scripts/extendLock-2.js.map +1 -0
  20. package/dist/cjs/scripts/getState-7.d.ts +5 -0
  21. package/dist/{esm/commands/getState-7.lua → cjs/scripts/getState-7.js} +22 -12
  22. package/dist/cjs/scripts/getState-7.js.map +1 -0
  23. package/dist/cjs/scripts/getStateV2-7.d.ts +5 -0
  24. package/dist/cjs/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +11 -10
  25. package/dist/cjs/scripts/getStateV2-7.js.map +1 -0
  26. package/dist/cjs/scripts/index.d.ts +26 -0
  27. package/dist/cjs/scripts/index.js +30 -0
  28. package/dist/cjs/scripts/index.js.map +1 -0
  29. package/dist/cjs/scripts/isFinished-3.d.ts +5 -0
  30. package/dist/cjs/{commands/isFinished-3.lua → scripts/isFinished-3.js} +11 -10
  31. package/dist/cjs/scripts/isFinished-3.js.map +1 -0
  32. package/dist/cjs/scripts/isJobInList-1.d.ts +5 -0
  33. package/dist/cjs/scripts/isJobInList-1.js +32 -0
  34. package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
  35. package/dist/cjs/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  36. package/dist/cjs/scripts/moveStalledJobsToWait-8.js +291 -0
  37. package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
  38. package/dist/cjs/scripts/moveToActive-9.d.ts +5 -0
  39. package/dist/cjs/scripts/moveToActive-9.js +207 -0
  40. package/dist/cjs/scripts/moveToActive-9.js.map +1 -0
  41. package/dist/cjs/scripts/moveToDelayed-5.d.ts +5 -0
  42. package/dist/cjs/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +11 -13
  43. package/dist/cjs/scripts/moveToDelayed-5.js.map +1 -0
  44. package/dist/cjs/scripts/moveToFinished-12.d.ts +5 -0
  45. package/dist/cjs/scripts/moveToFinished-12.js +538 -0
  46. package/dist/cjs/scripts/moveToFinished-12.js.map +1 -0
  47. package/dist/cjs/scripts/moveToWaitingChildren-4.d.ts +5 -0
  48. package/dist/cjs/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +11 -14
  49. package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
  50. package/dist/cjs/scripts/obliterate-2.d.ts +5 -0
  51. package/dist/cjs/scripts/obliterate-2.js +241 -0
  52. package/dist/cjs/scripts/obliterate-2.js.map +1 -0
  53. package/dist/cjs/scripts/pause-4.d.ts +5 -0
  54. package/dist/{esm/commands/pause-4.lua → cjs/scripts/pause-4.js} +11 -7
  55. package/dist/cjs/scripts/pause-4.js.map +1 -0
  56. package/dist/cjs/scripts/promote-6.d.ts +5 -0
  57. package/dist/cjs/{commands/promote-6.lua → scripts/promote-6.js} +22 -14
  58. package/dist/cjs/scripts/promote-6.js.map +1 -0
  59. package/dist/cjs/scripts/releaseLock-1.d.ts +5 -0
  60. package/dist/{esm/commands/releaseLock-1.lua → cjs/scripts/releaseLock-1.js} +11 -5
  61. package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
  62. package/dist/cjs/scripts/removeJob-1.d.ts +5 -0
  63. package/dist/cjs/scripts/removeJob-1.js +206 -0
  64. package/dist/cjs/scripts/removeJob-1.js.map +1 -0
  65. package/dist/cjs/scripts/removeRepeatable-2.d.ts +5 -0
  66. package/dist/cjs/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +11 -7
  67. package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
  68. package/dist/cjs/scripts/reprocessJob-4.d.ts +5 -0
  69. package/dist/{esm/commands/reprocessJob-4.lua → cjs/scripts/reprocessJob-4.js} +11 -5
  70. package/dist/cjs/scripts/reprocessJob-4.js.map +1 -0
  71. package/dist/cjs/scripts/retryJob-6.d.ts +5 -0
  72. package/dist/{esm/commands/retryJob-6.lua → cjs/scripts/retryJob-6.js} +22 -13
  73. package/dist/cjs/scripts/retryJob-6.js.map +1 -0
  74. package/dist/cjs/scripts/retryJobs-6.d.ts +5 -0
  75. package/dist/cjs/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +38 -15
  76. package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
  77. package/dist/cjs/scripts/takeLock-1.d.ts +5 -0
  78. package/dist/cjs/{commands/takeLock-1.lua → scripts/takeLock-1.js} +11 -4
  79. package/dist/cjs/scripts/takeLock-1.js.map +1 -0
  80. package/dist/cjs/scripts/updateData-1.d.ts +5 -0
  81. package/dist/cjs/scripts/updateData-1.js +23 -0
  82. package/dist/cjs/scripts/updateData-1.js.map +1 -0
  83. package/dist/cjs/scripts/updateProgress-2.d.ts +5 -0
  84. package/dist/{esm/commands/updateProgress-2.lua → cjs/scripts/updateProgress-2.js} +11 -5
  85. package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
  86. package/dist/esm/classes/job.d.ts +1 -1
  87. package/dist/esm/classes/redis-connection.d.ts +6 -2
  88. package/dist/esm/classes/redis-connection.js +12 -5
  89. package/dist/esm/classes/redis-connection.js.map +1 -1
  90. package/dist/esm/scripts/addJob-8.d.ts +5 -0
  91. package/dist/{cjs/commands/addJob-8.lua → esm/scripts/addJob-8.js} +80 -31
  92. package/dist/esm/scripts/addJob-8.js.map +1 -0
  93. package/dist/esm/scripts/changeDelay-4.d.ts +5 -0
  94. package/dist/esm/{commands/changeDelay-4.lua → scripts/changeDelay-4.js} +8 -11
  95. package/dist/esm/scripts/changeDelay-4.js.map +1 -0
  96. package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
  97. package/dist/esm/scripts/cleanJobsInSet-2.js +261 -0
  98. package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
  99. package/dist/esm/scripts/drain-4.d.ts +5 -0
  100. package/dist/esm/{commands/includes/removeParentDependencyKey.lua → scripts/drain-4.js} +107 -10
  101. package/dist/esm/scripts/drain-4.js.map +1 -0
  102. package/dist/esm/scripts/extendLock-2.d.ts +5 -0
  103. package/dist/{cjs/commands/extendLock-2.lua → esm/scripts/extendLock-2.js} +8 -4
  104. package/dist/esm/scripts/extendLock-2.js.map +1 -0
  105. package/dist/esm/scripts/getState-7.d.ts +5 -0
  106. package/dist/{cjs/commands/getState-7.lua → esm/scripts/getState-7.js} +19 -12
  107. package/dist/esm/scripts/getState-7.js.map +1 -0
  108. package/dist/esm/scripts/getStateV2-7.d.ts +5 -0
  109. package/dist/esm/{commands/getStateV2-7.lua → scripts/getStateV2-7.js} +8 -10
  110. package/dist/esm/scripts/getStateV2-7.js.map +1 -0
  111. package/dist/esm/scripts/index.d.ts +26 -0
  112. package/dist/esm/scripts/index.js +27 -0
  113. package/dist/esm/scripts/index.js.map +1 -0
  114. package/dist/esm/scripts/isFinished-3.d.ts +5 -0
  115. package/dist/esm/{commands/isFinished-3.lua → scripts/isFinished-3.js} +8 -10
  116. package/dist/esm/scripts/isFinished-3.js.map +1 -0
  117. package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
  118. package/dist/esm/scripts/isJobInList-1.js +29 -0
  119. package/dist/esm/scripts/isJobInList-1.js.map +1 -0
  120. package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  121. package/dist/esm/scripts/moveStalledJobsToWait-8.js +288 -0
  122. package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
  123. package/dist/esm/scripts/moveToActive-9.d.ts +5 -0
  124. package/dist/esm/scripts/moveToActive-9.js +204 -0
  125. package/dist/esm/scripts/moveToActive-9.js.map +1 -0
  126. package/dist/esm/scripts/moveToDelayed-5.d.ts +5 -0
  127. package/dist/esm/{commands/moveToDelayed-5.lua → scripts/moveToDelayed-5.js} +8 -13
  128. package/dist/esm/scripts/moveToDelayed-5.js.map +1 -0
  129. package/dist/esm/scripts/moveToFinished-12.d.ts +5 -0
  130. package/dist/esm/scripts/moveToFinished-12.js +535 -0
  131. package/dist/esm/scripts/moveToFinished-12.js.map +1 -0
  132. package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
  133. package/dist/esm/{commands/moveToWaitingChildren-4.lua → scripts/moveToWaitingChildren-4.js} +8 -14
  134. package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
  135. package/dist/esm/scripts/obliterate-2.d.ts +5 -0
  136. package/dist/esm/scripts/obliterate-2.js +238 -0
  137. package/dist/esm/scripts/obliterate-2.js.map +1 -0
  138. package/dist/esm/scripts/pause-4.d.ts +5 -0
  139. package/dist/{cjs/commands/pause-4.lua → esm/scripts/pause-4.js} +8 -7
  140. package/dist/esm/scripts/pause-4.js.map +1 -0
  141. package/dist/esm/scripts/promote-6.d.ts +5 -0
  142. package/dist/esm/{commands/promote-6.lua → scripts/promote-6.js} +19 -14
  143. package/dist/esm/scripts/promote-6.js.map +1 -0
  144. package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
  145. package/dist/{cjs/commands/releaseLock-1.lua → esm/scripts/releaseLock-1.js} +8 -5
  146. package/dist/esm/scripts/releaseLock-1.js.map +1 -0
  147. package/dist/esm/scripts/removeJob-1.d.ts +5 -0
  148. package/dist/esm/scripts/removeJob-1.js +203 -0
  149. package/dist/esm/scripts/removeJob-1.js.map +1 -0
  150. package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
  151. package/dist/esm/{commands/removeRepeatable-2.lua → scripts/removeRepeatable-2.js} +8 -7
  152. package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
  153. package/dist/esm/scripts/reprocessJob-4.d.ts +5 -0
  154. package/dist/{cjs/commands/reprocessJob-4.lua → esm/scripts/reprocessJob-4.js} +8 -5
  155. package/dist/esm/scripts/reprocessJob-4.js.map +1 -0
  156. package/dist/esm/scripts/retryJob-6.d.ts +5 -0
  157. package/dist/{cjs/commands/retryJob-6.lua → esm/scripts/retryJob-6.js} +19 -13
  158. package/dist/esm/scripts/retryJob-6.js.map +1 -0
  159. package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
  160. package/dist/esm/{commands/retryJobs-6.lua → scripts/retryJobs-6.js} +35 -15
  161. package/dist/esm/scripts/retryJobs-6.js.map +1 -0
  162. package/dist/esm/scripts/takeLock-1.d.ts +5 -0
  163. package/dist/esm/{commands/takeLock-1.lua → scripts/takeLock-1.js} +8 -4
  164. package/dist/esm/scripts/takeLock-1.js.map +1 -0
  165. package/dist/esm/scripts/updateData-1.d.ts +5 -0
  166. package/dist/esm/{commands/updateData-1.lua → scripts/updateData-1.js} +8 -4
  167. package/dist/esm/scripts/updateData-1.js.map +1 -0
  168. package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
  169. package/dist/{cjs/commands/updateProgress-2.lua → esm/scripts/updateProgress-2.js} +8 -5
  170. package/dist/esm/scripts/updateProgress-2.js.map +1 -0
  171. package/package.json +4 -2
  172. package/dist/cjs/commands/cleanJobsInSet-2.lua +0 -46
  173. package/dist/cjs/commands/drain-4.lua +0 -25
  174. package/dist/cjs/commands/includes/addJobWithPriority.lua +0 -16
  175. package/dist/cjs/commands/includes/batches.lua +0 -18
  176. package/dist/cjs/commands/includes/checkItemInList.lua +0 -12
  177. package/dist/cjs/commands/includes/checkStalledJobs.lua +0 -137
  178. package/dist/cjs/commands/includes/cleanList.lua +0 -50
  179. package/dist/cjs/commands/includes/cleanSet.lua +0 -50
  180. package/dist/cjs/commands/includes/collectMetrics.lua +0 -46
  181. package/dist/cjs/commands/includes/destructureJobKey.lua +0 -12
  182. package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +0 -13
  183. package/dist/cjs/commands/includes/getTargetQueueList.lua +0 -12
  184. package/dist/cjs/commands/includes/getTimestamp.lua +0 -19
  185. package/dist/cjs/commands/includes/getZSetItems.lua +0 -7
  186. package/dist/cjs/commands/includes/isLocked.lua +0 -31
  187. package/dist/cjs/commands/includes/moveJobFromWaitToActive.lua +0 -84
  188. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
  189. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +0 -49
  190. package/dist/cjs/commands/includes/removeJob.lua +0 -13
  191. package/dist/cjs/commands/includes/removeJobFromAnyState.lua +0 -26
  192. package/dist/cjs/commands/includes/removeJobs.lua +0 -38
  193. package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +0 -15
  194. package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +0 -15
  195. package/dist/cjs/commands/includes/trimEvents.lua +0 -12
  196. package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +0 -28
  197. package/dist/cjs/commands/isJobInList-1.lua +0 -16
  198. package/dist/cjs/commands/moveStalledJobsToWait-8.lua +0 -24
  199. package/dist/cjs/commands/moveToActive-9.lua +0 -67
  200. package/dist/cjs/commands/moveToFinished-12.lua +0 -201
  201. package/dist/cjs/commands/obliterate-2.lua +0 -94
  202. package/dist/cjs/commands/removeJob-1.lua +0 -72
  203. package/dist/cjs/commands/updateData-1.lua +0 -16
  204. package/dist/esm/commands/cleanJobsInSet-2.lua +0 -46
  205. package/dist/esm/commands/drain-4.lua +0 -25
  206. package/dist/esm/commands/includes/addJobWithPriority.lua +0 -16
  207. package/dist/esm/commands/includes/batches.lua +0 -18
  208. package/dist/esm/commands/includes/checkItemInList.lua +0 -12
  209. package/dist/esm/commands/includes/checkStalledJobs.lua +0 -137
  210. package/dist/esm/commands/includes/cleanList.lua +0 -50
  211. package/dist/esm/commands/includes/cleanSet.lua +0 -50
  212. package/dist/esm/commands/includes/collectMetrics.lua +0 -46
  213. package/dist/esm/commands/includes/destructureJobKey.lua +0 -12
  214. package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +0 -13
  215. package/dist/esm/commands/includes/getTargetQueueList.lua +0 -12
  216. package/dist/esm/commands/includes/getTimestamp.lua +0 -19
  217. package/dist/esm/commands/includes/getZSetItems.lua +0 -7
  218. package/dist/esm/commands/includes/isLocked.lua +0 -31
  219. package/dist/esm/commands/includes/moveJobFromWaitToActive.lua +0 -84
  220. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +0 -25
  221. package/dist/esm/commands/includes/promoteDelayedJobs.lua +0 -49
  222. package/dist/esm/commands/includes/removeJob.lua +0 -13
  223. package/dist/esm/commands/includes/removeJobFromAnyState.lua +0 -26
  224. package/dist/esm/commands/includes/removeJobs.lua +0 -38
  225. package/dist/esm/commands/includes/removeJobsByMaxAge.lua +0 -15
  226. package/dist/esm/commands/includes/removeJobsByMaxCount.lua +0 -15
  227. package/dist/esm/commands/includes/trimEvents.lua +0 -12
  228. package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +0 -28
  229. package/dist/esm/commands/isJobInList-1.lua +0 -16
  230. package/dist/esm/commands/moveStalledJobsToWait-8.lua +0 -24
  231. package/dist/esm/commands/moveToActive-9.lua +0 -67
  232. package/dist/esm/commands/moveToFinished-12.lua +0 -201
  233. package/dist/esm/commands/obliterate-2.lua +0 -94
  234. package/dist/esm/commands/removeJob-1.lua +0 -72
@@ -154,7 +154,7 @@ export declare class Job<DataType = any, ReturnType = any, NameType extends stri
154
154
  * @returns
155
155
  */
156
156
  static fromId<T = any, R = any, N extends string = string>(queue: MinimalQueue, jobId: string): Promise<Job<T, R, N> | undefined>;
157
- toJSON(): Omit<this, "toJSON" | "scripts" | "prefix" | "discard" | "addJob" | "updateProgress" | "queue" | "asJSON" | "asJSONSandbox" | "update" | "log" | "remove" | "extendLock" | "moveToCompleted" | "moveToFailed" | "isCompleted" | "isFailed" | "isDelayed" | "isWaitingChildren" | "isActive" | "isWaiting" | "queueName" | "queueQualifiedName" | "getState" | "changeDelay" | "getChildrenValues" | "getDependencies" | "getDependenciesCount" | "waitUntilFinished" | "moveToDelayed" | "moveToWaitingChildren" | "promote" | "retry">;
157
+ toJSON(): Omit<this, "toJSON" | "scripts" | "prefix" | "discard" | "addJob" | "changeDelay" | "extendLock" | "getState" | "moveToDelayed" | "moveToWaitingChildren" | "promote" | "updateProgress" | "queue" | "asJSON" | "asJSONSandbox" | "update" | "log" | "remove" | "moveToCompleted" | "moveToFailed" | "isCompleted" | "isFailed" | "isDelayed" | "isWaitingChildren" | "isActive" | "isWaiting" | "queueName" | "queueQualifiedName" | "getChildrenValues" | "getDependencies" | "getDependenciesCount" | "waitUntilFinished" | "retry">;
158
158
  /**
159
159
  * Prepares a job to be serialized for storage in Redis.
160
160
  * @returns
@@ -1,7 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import { ScriptMetadata } from '../commands';
4
3
  import { ConnectionOptions, RedisClient } from '../interfaces';
4
+ export interface RawCommand {
5
+ content: string;
6
+ name: string;
7
+ keys: number;
8
+ }
5
9
  export declare class RedisConnection extends EventEmitter {
6
10
  private readonly shared;
7
11
  private readonly blocking;
@@ -23,7 +27,7 @@ export declare class RedisConnection extends EventEmitter {
23
27
  */
24
28
  static waitUntilReady(client: RedisClient): Promise<void>;
25
29
  get client(): Promise<RedisClient>;
26
- protected loadCommands(cache?: Map<string, ScriptMetadata>): Promise<void>;
30
+ protected loadCommands(providedScripts?: Record<string, RawCommand>): void;
27
31
  private init;
28
32
  disconnect(): Promise<void>;
29
33
  reconnect(): Promise<void>;
@@ -6,9 +6,8 @@ const ioredis_1 = require("ioredis");
6
6
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
7
  // @ts-ignore
8
8
  const utils_1 = require("ioredis/built/utils");
9
- const commands_1 = require("../commands");
10
9
  const utils_2 = require("../utils");
11
- const path = require("path");
10
+ const scripts = require("../scripts");
12
11
  const overrideMessage = [
13
12
  'BullMQ: WARNING! Your redis options maxRetriesPerRequest must be null',
14
13
  'and will be overridden by BullMQ.',
@@ -105,9 +104,17 @@ class RedisConnection extends events_1.EventEmitter {
105
104
  get client() {
106
105
  return this.initializing;
107
106
  }
108
- loadCommands(cache) {
109
- return (this._client['bullmq:loadingCommands'] ||
110
- (this._client['bullmq:loadingCommands'] = commands_1.scriptLoader.load(this._client, path.join(__dirname, '../commands'), cache !== null && cache !== void 0 ? cache : new Map())));
107
+ loadCommands(providedScripts) {
108
+ const finalScripts = providedScripts || scripts;
109
+ for (const property in finalScripts) {
110
+ // Only define the command if not already defined
111
+ if (!this._client[finalScripts[property].name]) {
112
+ this._client.defineCommand(finalScripts[property].name, {
113
+ numberOfKeys: finalScripts[property].keys,
114
+ lua: finalScripts[property].content,
115
+ });
116
+ }
117
+ }
111
118
  }
112
119
  async init() {
113
120
  if (!this._client) {
@@ -1 +1 @@
1
- {"version":3,"file":"redis-connection.js","sourceRoot":"","sources":["../../../src/classes/redis-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-connection.js","sourceRoot":"","sources":["../../../src/classes/redis-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const addJob: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,8 +1,10 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addJob = void 0;
4
+ const content = `--[[
2
5
  Adds a job to the queue by doing the following:
3
6
  - Increases the job counter if needed.
4
7
  - Creates a new job key with the job data.
5
-
6
8
  - if delayed:
7
9
  - computes timestamp.
8
10
  - adds to delayed zset.
@@ -13,7 +15,6 @@
13
15
  - FIFO
14
16
  - prioritized.
15
17
  - Adds the job to the "added" list so that workers gets notified.
16
-
17
18
  Input:
18
19
  KEYS[1] 'wait',
19
20
  KEYS[2] 'paused'
@@ -23,7 +24,6 @@
23
24
  KEYS[6] 'priority'
24
25
  KEYS[7] 'completed'
25
26
  KEYS[8] events stream key
26
-
27
27
  ARGV[1] msgpacked arguments array
28
28
  [1] key prefix,
29
29
  [2] custom id (will not generate one automatically)
@@ -34,10 +34,8 @@
34
34
  [7] parent dependencies key.
35
35
  [8] parent? {id, queueKey}
36
36
  [9] repeat job key
37
-
38
37
  ARGV[2] Json stringified job data
39
38
  ARGV[3] msgpacked options
40
-
41
39
  Output:
42
40
  jobId - OK
43
41
  -5 - Missing parent key
@@ -45,39 +43,96 @@
45
43
  local jobId
46
44
  local jobIdKey
47
45
  local rcall = redis.call
48
-
49
46
  local args = cmsgpack.unpack(ARGV[1])
50
-
51
47
  local data = ARGV[2]
52
48
  local opts = cmsgpack.unpack(ARGV[3])
53
-
54
49
  local parentKey = args[5]
55
50
  local repeatJobKey = args[9]
56
51
  local parent = args[8]
57
52
  local parentData
58
-
59
53
  -- Includes
60
- --- @include "includes/addJobWithPriority"
61
- --- @include "includes/getTargetQueueList"
62
- --- @include "includes/trimEvents"
63
- --- @include "includes/getNextDelayedTimestamp"
64
-
54
+ --[[
55
+ Function to add job considering priority.
56
+ ]]
57
+ local function addJobWithPriority(priorityKey, priority, targetKey, jobId)
58
+ rcall("ZADD", priorityKey, priority, jobId)
59
+ local count = rcall("ZCOUNT", priorityKey, 0, priority)
60
+ local len = rcall("LLEN", targetKey)
61
+ local id = rcall("LINDEX", targetKey, len - (count - 1))
62
+ if id then
63
+ rcall("LINSERT", targetKey, "BEFORE", id, jobId)
64
+ else
65
+ rcall("RPUSH", targetKey, jobId)
66
+ end
67
+ end
68
+ --[[
69
+ Function to check for the meta.paused key to decide if we are paused or not
70
+ (since an empty list and !EXISTS are not really the same).
71
+ ]]
72
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
73
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
74
+ return waitKey
75
+ else
76
+ return pausedKey
77
+ end
78
+ end
79
+ --[[
80
+ Function to trim events, default 10000.
81
+ ]]
82
+ local function trimEvents(metaKey, eventStreamKey)
83
+ local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
84
+ if maxEvents ~= false then
85
+ rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
86
+ else
87
+ rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
88
+ end
89
+ end
90
+ --[[
91
+ Function to return the next delayed job timestamp.
92
+ ]]
93
+ local function getNextDelayedTimestamp(delayedKey)
94
+ local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
95
+ if #result then
96
+ local nextTimestamp = tonumber(result[2])
97
+ if (nextTimestamp ~= nil) then
98
+ nextTimestamp = nextTimestamp / 0x1000
99
+ end
100
+ return nextTimestamp
101
+ end
102
+ end
65
103
  if parentKey ~= nil then
66
104
  if rcall("EXISTS", parentKey) ~= 1 then
67
105
  return -5
68
106
  end
69
-
70
107
  parentData = cjson.encode(parent)
71
108
  end
72
-
73
109
  local jobCounter = rcall("INCR", KEYS[4])
74
-
75
110
  -- Includes
76
- --- @include "includes/updateParentDepsIfNeeded"
77
-
111
+ --[[
112
+ Validate and move or add dependencies to parent.
113
+ ]]
114
+ -- Includes
115
+ local function updateParentDepsIfNeeded(parentKey, parentQueueKey, parentDependenciesKey,
116
+ parentId, jobIdKey, returnvalue )
117
+ local processedSet = parentKey .. ":processed"
118
+ rcall("HSET", processedSet, jobIdKey, returnvalue)
119
+ local activeParent = rcall("ZSCORE", parentQueueKey .. ":waiting-children", parentId)
120
+ if rcall("SCARD", parentDependenciesKey) == 0 and activeParent then
121
+ rcall("ZREM", parentQueueKey .. ":waiting-children", parentId)
122
+ local parentTarget = getTargetQueueList(parentQueueKey .. ":meta", parentQueueKey .. ":wait",
123
+ parentQueueKey .. ":paused")
124
+ local priority = tonumber(rcall("HGET", parentKey, "priority"))
125
+ -- Standard or priority add
126
+ if priority == 0 then
127
+ rcall("RPUSH", parentTarget, parentId)
128
+ else
129
+ addJobWithPriority(parentQueueKey .. ":priority", priority, parentTarget, parentId)
130
+ end
131
+ rcall("XADD", parentQueueKey .. ":events", "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
132
+ end
133
+ end
78
134
  -- Trim events before emiting them to avoid trimming events emitted in this script
79
135
  trimEvents(KEYS[3], KEYS[8])
80
-
81
136
  local parentDependenciesKey = args[7]
82
137
  if args[2] == "" then
83
138
  jobId = jobCounter
@@ -101,13 +156,11 @@ else
101
156
  return jobId .. "" -- convert to string
102
157
  end
103
158
  end
104
-
105
159
  -- Store the job.
106
160
  local jsonOpts = cjson.encode(opts)
107
161
  local delay = opts['delay'] or 0
108
162
  local priority = opts['priority'] or 0
109
163
  local timestamp = args[4]
110
-
111
164
  local optionalValues = {}
112
165
  if parentKey ~= nil then
113
166
  table.insert(optionalValues, "parentKey")
@@ -115,20 +168,15 @@ if parentKey ~= nil then
115
168
  table.insert(optionalValues, "parent")
116
169
  table.insert(optionalValues, parentData)
117
170
  end
118
-
119
171
  if repeatJobKey ~= nil then
120
172
  table.insert(optionalValues, "rjk")
121
173
  table.insert(optionalValues, repeatJobKey)
122
174
  end
123
-
124
175
  rcall("HMSET", jobIdKey, "name", args[3], "data", ARGV[2], "opts", jsonOpts,
125
176
  "timestamp", timestamp, "delay", delay, "priority", priority, unpack(optionalValues))
126
-
127
177
  rcall("XADD", KEYS[8], "*", "event", "added", "jobId", jobId, "name", args[3])
128
-
129
178
  -- Check if job is delayed
130
179
  local delayedTimestamp = (delay > 0 and (timestamp + delay)) or 0
131
-
132
180
  -- Check if job is a parent, if so add to the parents set
133
181
  local waitChildrenKey = args[6]
134
182
  if waitChildrenKey ~= nil then
@@ -150,7 +198,6 @@ elseif (delayedTimestamp ~= 0) then
150
198
  end
151
199
  else
152
200
  local target = getTargetQueueList(KEYS[3], KEYS[1], KEYS[2])
153
-
154
201
  -- Standard or priority add
155
202
  if priority == 0 then
156
203
  -- LIFO or FIFO
@@ -163,12 +210,17 @@ else
163
210
  -- Emit waiting event
164
211
  rcall("XADD", KEYS[8], "*", "event", "waiting", "jobId", jobId)
165
212
  end
166
-
167
213
  -- Check if this job is a child of another job, if so add it to the parents dependencies
168
214
  -- TODO: Should not be possible to add a child job to a parent that is not in the "waiting-children" status.
169
215
  -- fail in this case.
170
216
  if parentDependenciesKey ~= nil then
171
217
  rcall("SADD", parentDependenciesKey, jobIdKey)
172
218
  end
173
-
174
219
  return jobId .. "" -- convert to string
220
+ `;
221
+ exports.addJob = {
222
+ name: 'addJob',
223
+ content,
224
+ keys: 8,
225
+ };
226
+ //# sourceMappingURL=addJob-8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addJob-8.js","sourceRoot":"","sources":["../../../src/scripts/addJob-8.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwNf,CAAC;AACW,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const changeDelay: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -1,11 +1,13 @@
1
- --[[
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.changeDelay = void 0;
4
+ const content = `--[[
2
5
  Change job delay when it is in delayed set.
3
6
  Input:
4
7
  KEYS[1] delayed key
5
8
  KEYS[2] job key
6
9
  KEYS[3] events stream
7
10
  KEYS[4] delayed stream
8
-
9
11
  ARGV[1] delay
10
12
  ARGV[2] delayedTimestamp
11
13
  ARGV[3] the id of the job
@@ -13,31 +15,29 @@
13
15
  0 - OK
14
16
  -1 - Missing job.
15
17
  -3 - Job not in delayed set.
16
-
17
18
  Events:
18
19
  - delayed key.
19
20
  ]]
20
21
  local rcall = redis.call
21
-
22
22
  if rcall("EXISTS", KEYS[2]) == 1 then
23
-
24
23
  local jobId = ARGV[3]
25
24
  local score = tonumber(ARGV[2])
26
25
  local delayedTimestamp = (score / 0x1000)
27
-
28
26
  local numRemovedElements = rcall("ZREM", KEYS[1], jobId)
29
-
30
27
  if (numRemovedElements < 1) then
31
28
  return -3
32
29
  end
33
-
34
30
  rcall("HSET", KEYS[2], "delay", tonumber(ARGV[1]))
35
31
  rcall("ZADD", KEYS[1], score, jobId)
36
-
37
32
  rcall("XADD", KEYS[3], "*", "event", "delayed", "jobId", jobId, "delay", delayedTimestamp);
38
33
  rcall("XADD", KEYS[4], "*", "nextTimestamp", delayedTimestamp);
39
-
40
34
  return 0
41
35
  else
42
36
  return -1
43
- end
37
+ end`;
38
+ exports.changeDelay = {
39
+ name: 'changeDelay',
40
+ content,
41
+ keys: 4,
42
+ };
43
+ //# sourceMappingURL=changeDelay-4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeDelay-4.js","sourceRoot":"","sources":["../../../src/scripts/changeDelay-4.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCZ,CAAC;AACQ,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const cleanJobsInSet: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanJobsInSet = void 0;
4
+ const content = `--[[
5
+ Remove jobs from the specific set.
6
+ Input:
7
+ KEYS[1] set key,
8
+ KEYS[2] events stream key
9
+ ARGV[1] jobKey prefix
10
+ ARGV[2] timestamp
11
+ ARGV[3] limit the number of jobs to be removed. 0 is unlimited
12
+ ARGV[4] set name, can be any of 'wait', 'active', 'paused', 'delayed', 'completed', or 'failed'
13
+ ]]
14
+ local rcall = redis.call
15
+ local rangeStart = 0
16
+ local rangeEnd = -1
17
+ local limit = tonumber(ARGV[3])
18
+ -- If we're only deleting _n_ items, avoid retrieving all items
19
+ -- for faster performance
20
+ --
21
+ -- Start from the tail of the list, since that's where oldest elements
22
+ -- are generally added for FIFO lists
23
+ if limit > 0 then
24
+ rangeStart = -1 - limit + 1
25
+ rangeEnd = -1
26
+ end
27
+ -- Includes
28
+ --[[
29
+ Function to clean job list.
30
+ Returns jobIds and deleted count number.
31
+ ]]
32
+ -- Includes
33
+ --[[
34
+ Function to get the latest saved timestamp.
35
+ ]]
36
+ local function getTimestamp(jobKey, attributes)
37
+ if #attributes == 1 then
38
+ return rcall("HGET", jobKey, attributes[1])
39
+ end
40
+ local jobTs
41
+ for _, ts in ipairs(rcall("HMGET", jobKey, unpack(attributes))) do
42
+ if (ts) then
43
+ jobTs = ts
44
+ break
45
+ end
46
+ end
47
+ return jobTs
48
+ end
49
+ --[[
50
+ Function to remove job.
51
+ ]]
52
+ -- Includes
53
+ --[[
54
+ Check if this job has a parent. If so we will just remove it from
55
+ the parent child list, but if it is the last child we should move the parent to "wait/paused"
56
+ which requires code from "moveToFinished"
57
+ ]]
58
+ --[[
59
+ Functions to destructure job key.
60
+ Just a bit of warning, these functions may be a bit slow and affect performance significantly.
61
+ ]]
62
+ local getJobIdFromKey = function (jobKey)
63
+ return string.match(jobKey, ".*:(.*)")
64
+ end
65
+ local getJobKeyPrefix = function (jobKey, jobId)
66
+ return string.sub(jobKey, 0, #jobKey - #jobId)
67
+ end
68
+ --[[
69
+ Function to check for the meta.paused key to decide if we are paused or not
70
+ (since an empty list and !EXISTS are not really the same).
71
+ ]]
72
+ local function getTargetQueueList(queueMetaKey, waitKey, pausedKey)
73
+ if rcall("HEXISTS", queueMetaKey, "paused") ~= 1 then
74
+ return waitKey
75
+ else
76
+ return pausedKey
77
+ end
78
+ end
79
+ local function moveParentToWait(parentPrefix, parentId, emitEvent)
80
+ local parentTarget = getTargetQueueList(parentPrefix .. "meta", parentPrefix .. "wait", parentPrefix .. "paused")
81
+ rcall("RPUSH", parentTarget, parentId)
82
+ if emitEvent then
83
+ local parentEventStream = parentPrefix .. "events"
84
+ rcall("XADD", parentEventStream, "*", "event", "waiting", "jobId", parentId, "prev", "waiting-children")
85
+ end
86
+ end
87
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
88
+ if parentKey then
89
+ local parentProcessedKey = parentKey .. ":processed"
90
+ rcall("HDEL", parentProcessedKey, jobKey)
91
+ local parentDependenciesKey = parentKey .. ":dependencies"
92
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
93
+ if result > 0 then
94
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
95
+ if pendingDependencies == 0 then
96
+ local parentId = getJobIdFromKey(parentKey)
97
+ local parentPrefix = getJobKeyPrefix(parentKey, parentId)
98
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
99
+ if numRemovedElements == 1 then
100
+ if hard then
101
+ if parentPrefix == baseKey then
102
+ removeParentDependencyKey(parentKey, hard, nil, baseKey)
103
+ rcall("DEL", parentKey, parentKey .. ':logs',
104
+ parentKey .. ':dependencies', parentKey .. ':processed')
105
+ else
106
+ moveParentToWait(parentPrefix, parentId)
107
+ end
108
+ else
109
+ moveParentToWait(parentPrefix, parentId, true)
110
+ end
111
+ end
112
+ end
113
+ end
114
+ else
115
+ local missedParentKey = rcall("HGET", jobKey, "parentKey")
116
+ if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
117
+ local parentProcessedKey = missedParentKey .. ":processed"
118
+ rcall("HDEL", parentProcessedKey, jobKey)
119
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
120
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
121
+ if result > 0 then
122
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
123
+ if pendingDependencies == 0 then
124
+ local parentId = getJobIdFromKey(missedParentKey)
125
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
126
+ local numRemovedElements = rcall("ZREM", parentPrefix .. "waiting-children", parentId)
127
+ if numRemovedElements == 1 then
128
+ if hard then
129
+ if parentPrefix == baseKey then
130
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
131
+ rcall("DEL", missedParentKey, missedParentKey .. ':logs',
132
+ missedParentKey .. ':dependencies', missedParentKey .. ':processed')
133
+ else
134
+ moveParentToWait(parentPrefix, parentId)
135
+ end
136
+ else
137
+ moveParentToWait(parentPrefix, parentId, true)
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
145
+ local function removeJob(jobId, hard, baseKey)
146
+ local jobKey = baseKey .. jobId
147
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
148
+ rcall("DEL", jobKey, jobKey .. ':logs',
149
+ jobKey .. ':dependencies', jobKey .. ':processed')
150
+ end
151
+ local function cleanList(listKey, jobKeyPrefix, rangeStart, rangeEnd,
152
+ timestamp, isWaiting)
153
+ local jobs = rcall("LRANGE", listKey, rangeStart, rangeEnd)
154
+ local deleted = {}
155
+ local deletedCount = 0
156
+ local jobTS
157
+ local deletionMarker = ''
158
+ local jobIdsLen = #jobs
159
+ for i, job in ipairs(jobs) do
160
+ if limit > 0 and deletedCount >= limit then
161
+ break
162
+ end
163
+ local jobKey = jobKeyPrefix .. job
164
+ if (isWaiting or rcall("EXISTS", jobKey .. ":lock") == 0) then
165
+ -- Find the right timestamp of the job to compare to maxTimestamp:
166
+ -- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
167
+ -- * processedOn represents when the job was last attempted, but it doesn't get populated until
168
+ -- the job is first tried
169
+ -- * timestamp is the original job submission time
170
+ -- Fetch all three of these (in that order) and use the first one that is set so that we'll leave jobs
171
+ -- that have been active within the grace period:
172
+ jobTS = getTimestamp(jobKey, {"finishedOn", "processedOn", "timestamp"})
173
+ if (not jobTS or jobTS < timestamp) then
174
+ -- replace the entry with a deletion marker; the actual deletion will
175
+ -- occur at the end of the script
176
+ rcall("LSET", listKey, rangeEnd - jobIdsLen + i, deletionMarker)
177
+ removeJob(job, true, jobKeyPrefix)
178
+ if isWaiting then
179
+ rcall("ZREM", jobKeyPrefix .. "priority", job)
180
+ end
181
+ deletedCount = deletedCount + 1
182
+ table.insert(deleted, job)
183
+ end
184
+ end
185
+ end
186
+ rcall("LREM", listKey, 0, deletionMarker)
187
+ return {deleted, deletedCount}
188
+ end
189
+ --[[
190
+ Function to clean job set.
191
+ Returns jobIds and deleted count number.
192
+ ]]
193
+ -- Includes
194
+ --[[
195
+ Function to loop in batches.
196
+ Just a bit of warning, some commands as ZREM
197
+ could receive a maximum of 7000 parameters per call.
198
+ ]]
199
+ local function batches(n, batchSize)
200
+ local i = 0
201
+ return function()
202
+ local from = i * batchSize + 1
203
+ i = i + 1
204
+ if (from <= n) then
205
+ local to = math.min(from + batchSize - 1, n)
206
+ return from, to
207
+ end
208
+ end
209
+ end
210
+ -- We use ZRANGEBYSCORE to make the case where we're deleting a limited number
211
+ -- of items in a sorted set only run a single iteration. If we simply used
212
+ -- ZRANGE, we may take a long time traversing through jobs that are within the
213
+ -- grace period.
214
+ local function getJobs(setKey, rangeStart, rangeEnd, maxTimestamp, limit)
215
+ if limit > 0 then
216
+ return rcall("ZRANGEBYSCORE", setKey, 0, maxTimestamp, "LIMIT", 0, limit)
217
+ else
218
+ return rcall("ZRANGE", setKey, rangeStart, rangeEnd)
219
+ end
220
+ end
221
+ local function cleanSet(setKey, jobKeyPrefix, rangeStart, rangeEnd, timestamp, limit, attributes)
222
+ local jobs = getJobs(setKey, rangeStart, rangeEnd, timestamp, limit)
223
+ local deleted = {}
224
+ local deletedCount = 0
225
+ local jobTS
226
+ for i, job in ipairs(jobs) do
227
+ if limit > 0 and deletedCount >= limit then
228
+ break
229
+ end
230
+ local jobKey = jobKeyPrefix .. job
231
+ -- * finishedOn says when the job was completed, but it isn't set unless the job has actually completed
232
+ jobTS = getTimestamp(jobKey, attributes)
233
+ if (not jobTS or jobTS < timestamp) then
234
+ removeJob(job, true, jobKeyPrefix)
235
+ deletedCount = deletedCount + 1
236
+ table.insert(deleted, job)
237
+ end
238
+ end
239
+ if(#deleted > 0) then
240
+ for from, to in batches(#deleted, 7000) do
241
+ rcall("ZREM", setKey, unpack(deleted, from, to))
242
+ end
243
+ end
244
+ return {deleted, deletedCount}
245
+ end
246
+ local result
247
+ if ARGV[4] == "active" then
248
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], false)
249
+ elseif ARGV[4] == "delayed" then
250
+ result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], limit, {"processedOn", "timestamp"})
251
+ elseif ARGV[4] == "wait" or ARGV[4] == "paused" then
252
+ result = cleanList(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], true)
253
+ else
254
+ result = cleanSet(KEYS[1], ARGV[1], rangeStart, rangeEnd, ARGV[2], limit, {"finishedOn"} )
255
+ end
256
+ rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", result[2])
257
+ return result[1]
258
+ `;
259
+ exports.cleanJobsInSet = {
260
+ name: 'cleanJobsInSet',
261
+ content,
262
+ keys: 2,
263
+ };
264
+ //# sourceMappingURL=cleanJobsInSet-2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanJobsInSet-2.js","sourceRoot":"","sources":["../../../src/scripts/cleanJobsInSet-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Pf,CAAC;AACW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const drain: {
2
+ name: string;
3
+ content: string;
4
+ keys: number;
5
+ };