bullmq 2.1.3 → 2.2.1

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