bullmq 1.58.0 → 1.59.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 (328) hide show
  1. package/dist/{classes → cjs/classes}/backoffs.d.ts +0 -0
  2. package/dist/{classes → cjs/classes}/backoffs.js +0 -0
  3. package/dist/cjs/classes/backoffs.js.map +1 -0
  4. package/dist/{classes → cjs/classes}/child-pool.d.ts +0 -0
  5. package/dist/{classes → cjs/classes}/child-pool.js +1 -1
  6. package/dist/cjs/classes/child-pool.js.map +1 -0
  7. package/dist/{classes → cjs/classes}/child-processor.d.ts +0 -0
  8. package/dist/{classes → cjs/classes}/child-processor.js +0 -0
  9. package/dist/cjs/classes/child-processor.js.map +1 -0
  10. package/dist/{classes → cjs/classes}/compat.d.ts +0 -0
  11. package/dist/{classes → cjs/classes}/compat.js +0 -0
  12. package/dist/cjs/classes/compat.js.map +1 -0
  13. package/dist/{classes → cjs/classes}/flow-producer.d.ts +0 -0
  14. package/dist/{classes → cjs/classes}/flow-producer.js +0 -0
  15. package/dist/cjs/classes/flow-producer.js.map +1 -0
  16. package/dist/{classes → cjs/classes}/index.d.ts +0 -0
  17. package/dist/{classes → cjs/classes}/index.js +0 -0
  18. package/dist/cjs/classes/index.js.map +1 -0
  19. package/dist/{classes → cjs/classes}/job.d.ts +0 -0
  20. package/dist/{classes → cjs/classes}/job.js +0 -0
  21. package/dist/cjs/classes/job.js.map +1 -0
  22. package/dist/{classes → cjs/classes}/master.d.ts +0 -0
  23. package/dist/{classes → cjs/classes}/master.js +0 -0
  24. package/dist/cjs/classes/master.js.map +1 -0
  25. package/dist/{classes → cjs/classes}/process-utils.d.ts +0 -0
  26. package/dist/{classes → cjs/classes}/process-utils.js +0 -0
  27. package/dist/cjs/classes/process-utils.js.map +1 -0
  28. package/dist/{classes → cjs/classes}/queue-base.d.ts +0 -0
  29. package/dist/{classes → cjs/classes}/queue-base.js +0 -0
  30. package/dist/cjs/classes/queue-base.js.map +1 -0
  31. package/dist/{classes → cjs/classes}/queue-events.d.ts +0 -0
  32. package/dist/{classes → cjs/classes}/queue-events.js +0 -0
  33. package/dist/cjs/classes/queue-events.js.map +1 -0
  34. package/dist/{classes → cjs/classes}/queue-getters.d.ts +0 -0
  35. package/dist/{classes → cjs/classes}/queue-getters.js +0 -0
  36. package/dist/cjs/classes/queue-getters.js.map +1 -0
  37. package/dist/{classes → cjs/classes}/queue-keys.d.ts +0 -0
  38. package/dist/{classes → cjs/classes}/queue-keys.js +0 -0
  39. package/dist/cjs/classes/queue-keys.js.map +1 -0
  40. package/dist/{classes → cjs/classes}/queue-scheduler.d.ts +0 -0
  41. package/dist/{classes → cjs/classes}/queue-scheduler.js +0 -0
  42. package/dist/cjs/classes/queue-scheduler.js.map +1 -0
  43. package/dist/{classes → cjs/classes}/queue.d.ts +0 -0
  44. package/dist/{classes → cjs/classes}/queue.js +0 -0
  45. package/dist/cjs/classes/queue.js.map +1 -0
  46. package/dist/{classes → cjs/classes}/redis-connection.d.ts +0 -0
  47. package/dist/{classes → cjs/classes}/redis-connection.js +0 -0
  48. package/dist/cjs/classes/redis-connection.js.map +1 -0
  49. package/dist/{classes → cjs/classes}/repeat.d.ts +0 -0
  50. package/dist/{classes → cjs/classes}/repeat.js +0 -0
  51. package/dist/cjs/classes/repeat.js.map +1 -0
  52. package/dist/{classes → cjs/classes}/sandbox.d.ts +0 -0
  53. package/dist/{classes → cjs/classes}/sandbox.js +0 -0
  54. package/dist/cjs/classes/sandbox.js.map +1 -0
  55. package/dist/{classes → cjs/classes}/scripts.d.ts +0 -0
  56. package/dist/{classes → cjs/classes}/scripts.js +0 -0
  57. package/dist/cjs/classes/scripts.js.map +1 -0
  58. package/dist/{classes → cjs/classes}/timer-manager.d.ts +0 -0
  59. package/dist/{classes → cjs/classes}/timer-manager.js +0 -0
  60. package/dist/cjs/classes/timer-manager.js.map +1 -0
  61. package/dist/{classes → cjs/classes}/worker.d.ts +0 -0
  62. package/dist/{classes → cjs/classes}/worker.js +1 -1
  63. package/dist/cjs/classes/worker.js.map +1 -0
  64. package/dist/{commands → cjs/commands}/index.d.ts +0 -0
  65. package/dist/{commands → cjs/commands}/index.js +0 -0
  66. package/dist/cjs/commands/index.js.map +1 -0
  67. package/dist/{commands → cjs/commands}/script-loader.d.ts +0 -0
  68. package/dist/{commands → cjs/commands}/script-loader.js +0 -0
  69. package/dist/cjs/commands/script-loader.js.map +1 -0
  70. package/dist/{enums → cjs/enums}/error-codes.enum.d.ts +0 -0
  71. package/dist/{enums → cjs/enums}/error-codes.enum.js +0 -0
  72. package/dist/cjs/enums/error-codes.enum.js.map +1 -0
  73. package/dist/{enums → cjs/enums}/index.d.ts +0 -0
  74. package/dist/{enums → cjs/enums}/index.js +0 -0
  75. package/dist/{enums → cjs/enums}/index.js.map +1 -1
  76. package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  77. package/dist/{index.js → cjs/index.js} +0 -0
  78. package/dist/cjs/index.js.map +1 -0
  79. package/dist/{interfaces → cjs/interfaces}/advanced-options.d.ts +0 -0
  80. package/dist/{interfaces → cjs/interfaces}/advanced-options.js +0 -0
  81. package/dist/cjs/interfaces/advanced-options.js.map +1 -0
  82. package/dist/{interfaces → cjs/interfaces}/backoff-options.d.ts +0 -0
  83. package/dist/{interfaces → cjs/interfaces}/backoff-options.js +0 -0
  84. package/dist/cjs/interfaces/backoff-options.js.map +1 -0
  85. package/dist/{interfaces → cjs/interfaces}/child-command.d.ts +0 -0
  86. package/dist/{interfaces → cjs/interfaces}/child-command.js +0 -0
  87. package/dist/cjs/interfaces/child-command.js.map +1 -0
  88. package/dist/{interfaces → cjs/interfaces}/child-message.d.ts +0 -0
  89. package/dist/{interfaces → cjs/interfaces}/child-message.js +0 -0
  90. package/dist/cjs/interfaces/child-message.js.map +1 -0
  91. package/dist/{interfaces → cjs/interfaces}/connection.d.ts +0 -0
  92. package/dist/{interfaces → cjs/interfaces}/connection.js +0 -0
  93. package/dist/cjs/interfaces/connection.js.map +1 -0
  94. package/dist/{interfaces → cjs/interfaces}/flow-job.d.ts +0 -0
  95. package/dist/{interfaces → cjs/interfaces}/flow-job.js +0 -0
  96. package/dist/{interfaces → cjs/interfaces}/flow-job.js.map +1 -1
  97. package/dist/{interfaces → cjs/interfaces}/index.d.ts +0 -0
  98. package/dist/{interfaces → cjs/interfaces}/index.js +0 -0
  99. package/dist/cjs/interfaces/index.js.map +1 -0
  100. package/dist/{interfaces → cjs/interfaces}/jobs-options.d.ts +0 -0
  101. package/dist/{interfaces → cjs/interfaces}/jobs-options.js +0 -0
  102. package/dist/cjs/interfaces/jobs-options.js.map +1 -0
  103. package/dist/{interfaces → cjs/interfaces}/parent-command.d.ts +0 -0
  104. package/dist/{interfaces → cjs/interfaces}/parent-command.js +0 -0
  105. package/dist/cjs/interfaces/parent-command.js.map +1 -0
  106. package/dist/{interfaces → cjs/interfaces}/parent-message.d.ts +0 -0
  107. package/dist/{interfaces → cjs/interfaces}/parent-message.js +0 -0
  108. package/dist/cjs/interfaces/parent-message.js.map +1 -0
  109. package/dist/{interfaces → cjs/interfaces}/parent.d.ts +0 -0
  110. package/dist/{interfaces → cjs/interfaces}/parent.js +0 -0
  111. package/dist/{interfaces → cjs/interfaces}/parent.js.map +1 -1
  112. package/dist/{interfaces → cjs/interfaces}/queue-options.d.ts +0 -0
  113. package/dist/{interfaces → cjs/interfaces}/queue-options.js +0 -0
  114. package/dist/cjs/interfaces/queue-options.js.map +1 -0
  115. package/dist/{interfaces → cjs/interfaces}/queue-scheduler-options.d.ts +0 -0
  116. package/dist/{interfaces → cjs/interfaces}/queue-scheduler-options.js +0 -0
  117. package/dist/cjs/interfaces/queue-scheduler-options.js.map +1 -0
  118. package/dist/{interfaces → cjs/interfaces}/rate-limiter-options.d.ts +0 -0
  119. package/dist/{interfaces → cjs/interfaces}/rate-limiter-options.js +0 -0
  120. package/dist/cjs/interfaces/rate-limiter-options.js.map +1 -0
  121. package/dist/{interfaces → cjs/interfaces}/redis-options.d.ts +0 -0
  122. package/dist/{interfaces → cjs/interfaces}/redis-options.js +0 -0
  123. package/dist/cjs/interfaces/redis-options.js.map +1 -0
  124. package/dist/{interfaces → cjs/interfaces}/redis-streams.d.ts +0 -0
  125. package/dist/{interfaces → cjs/interfaces}/redis-streams.js +0 -0
  126. package/dist/cjs/interfaces/redis-streams.js.map +1 -0
  127. package/dist/{interfaces → cjs/interfaces}/repeat-options.d.ts +0 -0
  128. package/dist/{interfaces → cjs/interfaces}/repeat-options.js +0 -0
  129. package/dist/cjs/interfaces/repeat-options.js.map +1 -0
  130. package/dist/{interfaces → cjs/interfaces}/sandboxed-job-processor.d.ts +0 -0
  131. package/dist/{interfaces → cjs/interfaces}/sandboxed-job-processor.js +0 -0
  132. package/dist/cjs/interfaces/sandboxed-job-processor.js.map +1 -0
  133. package/dist/{interfaces → cjs/interfaces}/sandboxed-job.d.ts +0 -0
  134. package/dist/{interfaces → cjs/interfaces}/sandboxed-job.js +0 -0
  135. package/dist/cjs/interfaces/sandboxed-job.js.map +1 -0
  136. package/dist/{interfaces → cjs/interfaces}/worker-options.d.ts +0 -0
  137. package/dist/{interfaces → cjs/interfaces}/worker-options.js +0 -0
  138. package/dist/cjs/interfaces/worker-options.js.map +1 -0
  139. package/dist/{utils.d.ts → cjs/utils.d.ts} +0 -0
  140. package/dist/{utils.js → cjs/utils.js} +0 -0
  141. package/dist/cjs/utils.js.map +1 -0
  142. package/dist/esm/classes/backoffs.d.ts +15 -0
  143. package/dist/esm/classes/backoffs.js +44 -0
  144. package/dist/esm/classes/backoffs.js.map +1 -0
  145. package/dist/esm/classes/child-pool.d.ts +22 -0
  146. package/dist/esm/classes/child-pool.js +125 -0
  147. package/dist/esm/classes/child-pool.js.map +1 -0
  148. package/dist/esm/classes/child-processor.d.ts +24 -0
  149. package/dist/esm/classes/child-processor.js +165 -0
  150. package/dist/esm/classes/child-processor.js.map +1 -0
  151. package/dist/esm/classes/compat.d.ts +316 -0
  152. package/dist/esm/classes/compat.js +674 -0
  153. package/dist/esm/classes/compat.js.map +1 -0
  154. package/dist/esm/classes/flow-producer.d.ts +148 -0
  155. package/dist/esm/classes/flow-producer.js +228 -0
  156. package/dist/esm/classes/flow-producer.js.map +1 -0
  157. package/dist/esm/classes/index.d.ts +14 -0
  158. package/dist/esm/classes/index.js +15 -0
  159. package/dist/esm/classes/index.js.map +1 -0
  160. package/dist/esm/classes/job.d.ts +338 -0
  161. package/dist/esm/classes/job.js +623 -0
  162. package/dist/esm/classes/job.js.map +1 -0
  163. package/dist/esm/classes/master.d.ts +1 -0
  164. package/dist/esm/classes/master.js +35 -0
  165. package/dist/esm/classes/master.js.map +1 -0
  166. package/dist/esm/classes/process-utils.d.ts +7 -0
  167. package/dist/esm/classes/process-utils.js +31 -0
  168. package/dist/esm/classes/process-utils.js.map +1 -0
  169. package/dist/esm/classes/queue-base.d.ts +22 -0
  170. package/dist/esm/classes/queue-base.js +62 -0
  171. package/dist/esm/classes/queue-base.js.map +1 -0
  172. package/dist/esm/classes/queue-events.d.ts +153 -0
  173. package/dist/esm/classes/queue-events.js +108 -0
  174. package/dist/esm/classes/queue-events.js.map +1 -0
  175. package/dist/esm/classes/queue-getters.d.ts +54 -0
  176. package/dist/esm/classes/queue-getters.js +207 -0
  177. package/dist/esm/classes/queue-getters.js.map +1 -0
  178. package/dist/esm/classes/queue-keys.d.ts +10 -0
  179. package/dist/esm/classes/queue-keys.js +40 -0
  180. package/dist/esm/classes/queue-keys.js.map +1 -0
  181. package/dist/esm/classes/queue-scheduler.d.ts +35 -0
  182. package/dist/esm/classes/queue-scheduler.js +156 -0
  183. package/dist/esm/classes/queue-scheduler.js.map +1 -0
  184. package/dist/esm/classes/queue.d.ts +143 -0
  185. package/dist/esm/classes/queue.js +195 -0
  186. package/dist/esm/classes/queue.js.map +1 -0
  187. package/dist/esm/classes/redis-connection.d.ts +28 -0
  188. package/dist/esm/classes/redis-connection.js +164 -0
  189. package/dist/esm/classes/redis-connection.js.map +1 -0
  190. package/dist/esm/classes/repeat.d.ts +20 -0
  191. package/dist/esm/classes/repeat.js +140 -0
  192. package/dist/esm/classes/repeat.js.map +1 -0
  193. package/dist/esm/classes/sandbox.d.ts +4 -0
  194. package/dist/esm/classes/sandbox.js +56 -0
  195. package/dist/esm/classes/sandbox.js.map +1 -0
  196. package/dist/esm/classes/scripts.d.ts +82 -0
  197. package/dist/esm/classes/scripts.js +510 -0
  198. package/dist/esm/classes/scripts.js.map +1 -0
  199. package/dist/esm/classes/timer-manager.d.ts +17 -0
  200. package/dist/esm/classes/timer-manager.js +47 -0
  201. package/dist/esm/classes/timer-manager.js.map +1 -0
  202. package/dist/esm/classes/worker.d.ts +168 -0
  203. package/dist/esm/classes/worker.js +469 -0
  204. package/dist/esm/classes/worker.js.map +1 -0
  205. package/dist/esm/commands/index.d.ts +4 -0
  206. package/dist/esm/commands/index.js +5 -0
  207. package/dist/esm/commands/index.js.map +1 -0
  208. package/dist/esm/commands/script-loader.d.ts +120 -0
  209. package/dist/esm/commands/script-loader.js +395 -0
  210. package/dist/esm/commands/script-loader.js.map +1 -0
  211. package/dist/esm/enums/error-codes.enum.d.ts +7 -0
  212. package/dist/esm/enums/error-codes.enum.js +9 -0
  213. package/dist/esm/enums/error-codes.enum.js.map +1 -0
  214. package/dist/esm/enums/index.d.ts +1 -0
  215. package/dist/esm/enums/index.js +2 -0
  216. package/dist/esm/enums/index.js.map +1 -0
  217. package/dist/esm/index.d.ts +5 -0
  218. package/dist/esm/index.js +6 -0
  219. package/dist/esm/index.js.map +1 -0
  220. package/dist/esm/interfaces/advanced-options.d.ts +6 -0
  221. package/dist/esm/interfaces/advanced-options.js +2 -0
  222. package/dist/esm/interfaces/advanced-options.js.map +1 -0
  223. package/dist/esm/interfaces/backoff-options.d.ts +15 -0
  224. package/dist/esm/interfaces/backoff-options.js +2 -0
  225. package/dist/esm/interfaces/backoff-options.js.map +1 -0
  226. package/dist/esm/interfaces/child-command.d.ts +5 -0
  227. package/dist/esm/interfaces/child-command.js +7 -0
  228. package/dist/esm/interfaces/child-command.js.map +1 -0
  229. package/dist/esm/interfaces/child-message.d.ts +6 -0
  230. package/dist/esm/interfaces/child-message.js +2 -0
  231. package/dist/esm/interfaces/child-message.js.map +1 -0
  232. package/dist/esm/interfaces/connection.d.ts +8 -0
  233. package/dist/esm/interfaces/connection.js +2 -0
  234. package/dist/esm/interfaces/connection.js.map +1 -0
  235. package/dist/esm/interfaces/flow-job.d.ts +14 -0
  236. package/dist/esm/interfaces/flow-job.js +2 -0
  237. package/dist/esm/interfaces/flow-job.js.map +1 -0
  238. package/dist/esm/interfaces/index.d.ts +19 -0
  239. package/dist/esm/interfaces/index.js +20 -0
  240. package/dist/esm/interfaces/index.js.map +1 -0
  241. package/dist/esm/interfaces/jobs-options.d.ts +91 -0
  242. package/dist/esm/interfaces/jobs-options.js +2 -0
  243. package/dist/esm/interfaces/jobs-options.js.map +1 -0
  244. package/dist/esm/interfaces/parent-command.d.ts +9 -0
  245. package/dist/esm/interfaces/parent-command.js +11 -0
  246. package/dist/esm/interfaces/parent-command.js.map +1 -0
  247. package/dist/esm/interfaces/parent-message.d.ts +8 -0
  248. package/dist/esm/interfaces/parent-message.js +2 -0
  249. package/dist/esm/interfaces/parent-message.js.map +1 -0
  250. package/dist/esm/interfaces/parent.d.ts +11 -0
  251. package/dist/esm/interfaces/parent.js +2 -0
  252. package/dist/esm/interfaces/parent.js.map +1 -0
  253. package/dist/esm/interfaces/queue-options.d.ts +72 -0
  254. package/dist/esm/interfaces/queue-options.js +6 -0
  255. package/dist/esm/interfaces/queue-options.js.map +1 -0
  256. package/dist/esm/interfaces/queue-scheduler-options.d.ts +23 -0
  257. package/dist/esm/interfaces/queue-scheduler-options.js +2 -0
  258. package/dist/esm/interfaces/queue-scheduler-options.js.map +1 -0
  259. package/dist/esm/interfaces/rate-limiter-options.d.ts +30 -0
  260. package/dist/esm/interfaces/rate-limiter-options.js +2 -0
  261. package/dist/esm/interfaces/rate-limiter-options.js.map +1 -0
  262. package/dist/esm/interfaces/redis-options.d.ts +5 -0
  263. package/dist/esm/interfaces/redis-options.js +2 -0
  264. package/dist/esm/interfaces/redis-options.js.map +1 -0
  265. package/dist/esm/interfaces/redis-streams.d.ts +4 -0
  266. package/dist/esm/interfaces/redis-streams.js +2 -0
  267. package/dist/esm/interfaces/redis-streams.js.map +1 -0
  268. package/dist/esm/interfaces/repeat-options.d.ts +44 -0
  269. package/dist/esm/interfaces/repeat-options.js +2 -0
  270. package/dist/esm/interfaces/repeat-options.js.map +1 -0
  271. package/dist/esm/interfaces/sandboxed-job-processor.d.ts +5 -0
  272. package/dist/esm/interfaces/sandboxed-job-processor.js +2 -0
  273. package/dist/esm/interfaces/sandboxed-job-processor.js.map +1 -0
  274. package/dist/esm/interfaces/sandboxed-job.d.ts +13 -0
  275. package/dist/esm/interfaces/sandboxed-job.js +2 -0
  276. package/dist/esm/interfaces/sandboxed-job.js.map +1 -0
  277. package/dist/esm/interfaces/worker-options.d.ts +32 -0
  278. package/dist/esm/interfaces/worker-options.js +2 -0
  279. package/dist/esm/interfaces/worker-options.js.map +1 -0
  280. package/dist/esm/tsdoc-metadata.json +11 -0
  281. package/dist/esm/utils.d.ts +29 -0
  282. package/dist/esm/utils.js +124 -0
  283. package/dist/esm/utils.js.map +1 -0
  284. package/package.json +9 -7
  285. package/dist/classes/backoffs.js.map +0 -1
  286. package/dist/classes/child-pool.js.map +0 -1
  287. package/dist/classes/child-processor.js.map +0 -1
  288. package/dist/classes/compat.js.map +0 -1
  289. package/dist/classes/flow-producer.js.map +0 -1
  290. package/dist/classes/index.js.map +0 -1
  291. package/dist/classes/job.js.map +0 -1
  292. package/dist/classes/master.js.map +0 -1
  293. package/dist/classes/process-utils.js.map +0 -1
  294. package/dist/classes/queue-base.js.map +0 -1
  295. package/dist/classes/queue-events.js.map +0 -1
  296. package/dist/classes/queue-getters.js.map +0 -1
  297. package/dist/classes/queue-keys.js.map +0 -1
  298. package/dist/classes/queue-scheduler.js.map +0 -1
  299. package/dist/classes/queue.js.map +0 -1
  300. package/dist/classes/redis-connection.js.map +0 -1
  301. package/dist/classes/repeat.js.map +0 -1
  302. package/dist/classes/sandbox.js.map +0 -1
  303. package/dist/classes/scripts.js.map +0 -1
  304. package/dist/classes/timer-manager.js.map +0 -1
  305. package/dist/classes/worker.js.map +0 -1
  306. package/dist/commands/index.js.map +0 -1
  307. package/dist/commands/script-loader.js.map +0 -1
  308. package/dist/enums/error-codes.enum.js.map +0 -1
  309. package/dist/index.js.map +0 -1
  310. package/dist/interfaces/advanced-options.js.map +0 -1
  311. package/dist/interfaces/backoff-options.js.map +0 -1
  312. package/dist/interfaces/child-command.js.map +0 -1
  313. package/dist/interfaces/child-message.js.map +0 -1
  314. package/dist/interfaces/connection.js.map +0 -1
  315. package/dist/interfaces/index.js.map +0 -1
  316. package/dist/interfaces/jobs-options.js.map +0 -1
  317. package/dist/interfaces/parent-command.js.map +0 -1
  318. package/dist/interfaces/parent-message.js.map +0 -1
  319. package/dist/interfaces/queue-options.js.map +0 -1
  320. package/dist/interfaces/queue-scheduler-options.js.map +0 -1
  321. package/dist/interfaces/rate-limiter-options.js.map +0 -1
  322. package/dist/interfaces/redis-options.js.map +0 -1
  323. package/dist/interfaces/redis-streams.js.map +0 -1
  324. package/dist/interfaces/repeat-options.js.map +0 -1
  325. package/dist/interfaces/sandboxed-job-processor.js.map +0 -1
  326. package/dist/interfaces/sandboxed-job.js.map +0 -1
  327. package/dist/interfaces/worker-options.js.map +0 -1
  328. package/dist/utils.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { toString } from 'lodash';
2
+ import { ChildProcessor } from './child-processor';
3
+ import { ParentCommand, ChildCommand } from '../interfaces';
4
+ import { childSend } from '../utils';
5
+ const childProcessor = new ChildProcessor();
6
+ process.on('message', async (msg) => {
7
+ try {
8
+ switch (msg.cmd) {
9
+ case ChildCommand.Init:
10
+ await childProcessor.init(msg.value);
11
+ break;
12
+ case ChildCommand.Start:
13
+ await childProcessor.start(msg.job);
14
+ break;
15
+ case ChildCommand.Stop:
16
+ break;
17
+ }
18
+ }
19
+ catch (err) {
20
+ console.error('Error handling child message');
21
+ }
22
+ });
23
+ process.on('SIGTERM', () => childProcessor.waitForCurrentJobAndExit());
24
+ process.on('SIGINT', () => childProcessor.waitForCurrentJobAndExit());
25
+ process.on('uncaughtException', async (err) => {
26
+ if (!err.message) {
27
+ err = new Error(toString(err));
28
+ }
29
+ await childSend(process, {
30
+ cmd: ParentCommand.Failed,
31
+ value: err,
32
+ });
33
+ throw err;
34
+ });
35
+ //# sourceMappingURL=master.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master.js","sourceRoot":"","sources":["../../../src/classes/master.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAE5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;IAChC,IAAI;QACF,QAAQ,GAAG,CAAC,GAAmB,EAAE;YAC/B,KAAK,YAAY,CAAC,IAAI;gBACpB,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,YAAY,CAAC,KAAK;gBACrB,MAAM,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,YAAY,CAAC,IAAI;gBACpB,MAAM;SACT;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAC/C;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC;AACvE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAEtE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAU,EAAE,EAAE;IACnD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAChC;IACD,MAAM,SAAS,CAAC,OAAO,EAAE;QACvB,GAAG,EAAE,aAAa,CAAC,MAAM;QACzB,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import { ChildProcess } from 'child_process';
3
+ /**
4
+ * Sends a kill signal to a child resolving when the child has exited,
5
+ * resorting to SIGKILL if the given timeout is reached
6
+ */
7
+ export declare function killAsync(child: ChildProcess, signal?: 'SIGTERM' | 'SIGKILL', timeoutMs?: number): Promise<void>;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+ function onExitOnce(child) {
3
+ return new Promise(resolve => {
4
+ child.once('exit', () => resolve());
5
+ });
6
+ }
7
+ function hasProcessExited(child) {
8
+ return !!(child.exitCode !== null || child.signalCode);
9
+ }
10
+ /**
11
+ * Sends a kill signal to a child resolving when the child has exited,
12
+ * resorting to SIGKILL if the given timeout is reached
13
+ */
14
+ export async function killAsync(child, signal = 'SIGKILL', timeoutMs = undefined) {
15
+ if (hasProcessExited(child)) {
16
+ return;
17
+ }
18
+ const onExit = onExitOnce(child);
19
+ child.kill(signal);
20
+ if (timeoutMs === 0 || isFinite(timeoutMs)) {
21
+ const timeoutHandle = setTimeout(() => {
22
+ if (!hasProcessExited(child)) {
23
+ child.kill('SIGKILL');
24
+ }
25
+ }, timeoutMs);
26
+ await onExit;
27
+ clearTimeout(timeoutHandle);
28
+ }
29
+ await onExit;
30
+ }
31
+ //# sourceMappingURL=process-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../../../src/classes/process-utils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,SAAS,UAAU,CAAC,KAAmB;IACrC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAmB,EACnB,SAAgC,SAAS,EACzC,YAAoB,SAAS;IAE7B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO;KACR;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnB,IAAI,SAAS,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACvB;QACH,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,MAAM,MAAM,CAAC;QACb,YAAY,CAAC,aAAa,CAAC,CAAC;KAC7B;IACD,MAAM,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { QueueBaseOptions, RedisClient } from '../interfaces';
4
+ import { RedisConnection } from './redis-connection';
5
+ import { KeysMap } from './queue-keys';
6
+ export declare class QueueBase extends EventEmitter {
7
+ readonly name: string;
8
+ opts: QueueBaseOptions;
9
+ toKey: (type: string) => string;
10
+ keys: KeysMap;
11
+ closing: Promise<void>;
12
+ protected connection: RedisConnection;
13
+ constructor(name: string, opts?: QueueBaseOptions, Connection?: typeof RedisConnection);
14
+ get client(): Promise<RedisClient>;
15
+ get redisVersion(): string;
16
+ emit(event: string | symbol, ...args: any[]): boolean;
17
+ waitUntilReady(): Promise<RedisClient>;
18
+ protected base64Name(): string;
19
+ protected clientName(): string;
20
+ close(): Promise<void>;
21
+ disconnect(): Promise<void>;
22
+ }
@@ -0,0 +1,62 @@
1
+ import { EventEmitter } from 'events';
2
+ import { RedisConnection } from './redis-connection';
3
+ import { QueueKeys } from './queue-keys';
4
+ export class QueueBase extends EventEmitter {
5
+ constructor(name, opts = {}, Connection = RedisConnection) {
6
+ super();
7
+ this.name = name;
8
+ this.opts = opts;
9
+ this.opts = Object.assign({ prefix: 'bull' }, opts);
10
+ if (!opts.connection) {
11
+ console.warn([
12
+ 'BullMQ: DEPRECATION WARNING! Optional instantiation of Queue, Worker, QueueScheduler and QueueEvents',
13
+ 'without providing explicitly a connection or connection options is deprecated. This behaviour will',
14
+ 'be removed in the next major release',
15
+ ].join(' '));
16
+ }
17
+ this.connection = new Connection(opts.connection, opts.sharedConnection);
18
+ this.connection.on('error', this.emit.bind(this, 'error'));
19
+ const queueKeys = new QueueKeys(opts.prefix);
20
+ this.keys = queueKeys.getKeys(name);
21
+ this.toKey = (type) => queueKeys.toKey(name, type);
22
+ }
23
+ get client() {
24
+ return this.connection.client;
25
+ }
26
+ get redisVersion() {
27
+ return this.connection.redisVersion;
28
+ }
29
+ emit(event, ...args) {
30
+ try {
31
+ return super.emit(event, ...args);
32
+ }
33
+ catch (err) {
34
+ try {
35
+ return super.emit('error', err);
36
+ }
37
+ catch (err) {
38
+ // We give up if the error event also throws an exception.
39
+ console.error(err);
40
+ }
41
+ }
42
+ }
43
+ waitUntilReady() {
44
+ return this.client;
45
+ }
46
+ base64Name() {
47
+ return Buffer.from(this.name).toString('base64');
48
+ }
49
+ clientName() {
50
+ return this.opts.prefix + ':' + this.base64Name();
51
+ }
52
+ close() {
53
+ if (!this.closing) {
54
+ this.closing = this.connection.close();
55
+ }
56
+ return this.closing;
57
+ }
58
+ disconnect() {
59
+ return this.connection.disconnect();
60
+ }
61
+ }
62
+ //# sourceMappingURL=queue-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-base.js","sourceRoot":"","sources":["../../../src/classes/queue-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAW,SAAS,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,OAAO,SAAU,SAAQ,YAAY;IAOzC,YACkB,IAAY,EACrB,OAAyB,EAAE,EAClC,aAAqC,eAAe;QAEpD,KAAK,EAAE,CAAC;QAJQ,SAAI,GAAJ,IAAI,CAAQ;QACrB,SAAI,GAAJ,IAAI,CAAuB;QAKlC,IAAI,CAAC,IAAI,mBACP,MAAM,EAAE,MAAM,IACX,IAAI,CACR,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,IAAI,CACV;gBACE,sGAAsG;gBACtG,oGAAoG;gBACpG,sCAAsC;aACvC,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;SACH;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAsB,EAAE,GAAG,IAAW;QACzC,IAAI;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI;gBACF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,0DAA0D;gBAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACF;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,UAAU;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,153 @@
1
+ import { QueueEventsOptions } from '../interfaces';
2
+ import { QueueBase } from './queue-base';
3
+ import { RedisConnection } from './redis-connection';
4
+ export interface QueueEventsListener {
5
+ /**
6
+ * Listen to 'active' event.
7
+ *
8
+ * This event is triggered when a job enters the 'active' state.
9
+ */
10
+ active: (args: {
11
+ jobId: string;
12
+ prev?: string;
13
+ }, id: string) => void;
14
+ /**
15
+ * Listen to 'added' event.
16
+ *
17
+ * This event is triggered when a job is created.
18
+ */
19
+ added: (args: {
20
+ jobId: string;
21
+ name: string;
22
+ data: string;
23
+ opts: string;
24
+ }, id: string) => void;
25
+ /**
26
+ * Listen to 'cleaned' event.
27
+ *
28
+ * This event is triggered when a cleaned method is triggered.
29
+ */
30
+ cleaned: (args: {
31
+ count: string;
32
+ }, id: string) => void;
33
+ /**
34
+ * Listen to 'completed' event.
35
+ *
36
+ * This event is triggered when a job has successfully completed.
37
+ */
38
+ completed: (args: {
39
+ jobId: string;
40
+ returnvalue: string;
41
+ prev?: string;
42
+ }, id: string) => void;
43
+ /**
44
+ * Listen to 'delayed' event.
45
+ *
46
+ * This event is triggered when a job is delayed.
47
+ */
48
+ delayed: (args: {
49
+ jobId: string;
50
+ delay: number;
51
+ }, id: string) => void;
52
+ /**
53
+ * Listen to 'drained' event.
54
+ *
55
+ * This event is triggered when the queue has drained the waiting list.
56
+ * Note that there could still be delayed jobs waiting their timers to expire
57
+ * and this event will still be triggered as long as the waiting list has emptied.
58
+ */
59
+ drained: (id: string) => void;
60
+ /**
61
+ * Listen to 'error' event.
62
+ *
63
+ * This event is triggered when an exception is thrown.
64
+ */
65
+ error: (args: Error) => void;
66
+ /**
67
+ * Listen to 'failed' event.
68
+ *
69
+ * This event is triggered when a job has thrown an exception.
70
+ */
71
+ failed: (args: {
72
+ jobId: string;
73
+ failedReason: string;
74
+ prev?: string;
75
+ }, id: string) => void;
76
+ /**
77
+ * Listen to 'paused' event.
78
+ *
79
+ * This event is triggered when a queue is paused.
80
+ */
81
+ paused: (args: {}, id: string) => void;
82
+ /**
83
+ * Listen to 'progress' event.
84
+ *
85
+ * This event is triggered when a job updates it progress, i.e. the
86
+ * Job##updateProgress() method is called. This is useful to notify
87
+ * progress or any other data from within a processor to the rest of the
88
+ * world.
89
+ */
90
+ progress: (args: {
91
+ jobId: string;
92
+ data: number | object;
93
+ }, id: string) => void;
94
+ /**
95
+ * Listen to 'removed' event.
96
+ *
97
+ * This event is triggered when a job has been manually
98
+ * removed from the queue.
99
+ */
100
+ removed: (args: {
101
+ jobId: string;
102
+ }, id: string) => void;
103
+ /**
104
+ * Listen to 'resumed' event.
105
+ *
106
+ * This event is triggered when a queue is resumed.
107
+ */
108
+ resumed: (args: {}, id: string) => void;
109
+ /**
110
+ * Listen to 'stalled' event.
111
+ *
112
+ * This event is triggered when a job has been moved from 'active' back
113
+ * to 'waiting'/'failed' due to the processor not being able to renew
114
+ * the lock on the said job.
115
+ */
116
+ stalled: (args: {
117
+ jobId: string;
118
+ }, id: string) => void;
119
+ /**
120
+ * Listen to 'waiting' event.
121
+ *
122
+ * This event is triggered when a job enters the 'waiting' state.
123
+ */
124
+ waiting: (args: {
125
+ jobId: string;
126
+ }, id: string) => void;
127
+ /**
128
+ * Listen to 'waiting-children' event.
129
+ *
130
+ * This event is triggered when a job enters the 'waiting-children' state.
131
+ */
132
+ 'waiting-children': (args: {
133
+ jobId: string;
134
+ }, id: string) => void;
135
+ }
136
+ /**
137
+ * The QueueEvents class is used for listening to the global events
138
+ * emitted by a given queue.
139
+ *
140
+ * This class requires a dedicated redis connection.
141
+ *
142
+ */
143
+ export declare class QueueEvents extends QueueBase {
144
+ private running;
145
+ emit<U extends keyof QueueEventsListener>(event: U, ...args: Parameters<QueueEventsListener[U]>): boolean;
146
+ off<U extends keyof QueueEventsListener>(eventName: U, listener: QueueEventsListener[U]): this;
147
+ on<U extends keyof QueueEventsListener>(event: U, listener: QueueEventsListener[U]): this;
148
+ once<U extends keyof QueueEventsListener>(event: U, listener: QueueEventsListener[U]): this;
149
+ constructor(name: string, { connection, autorun, ...opts }?: QueueEventsOptions, Connection?: typeof RedisConnection);
150
+ run(): Promise<void>;
151
+ private consumeEvents;
152
+ close(): Promise<void>;
153
+ }
@@ -0,0 +1,108 @@
1
+ import { __rest } from "tslib";
2
+ import { array2obj, delay, isNotConnectionError, isRedisInstance, } from '../utils';
3
+ import { DELAY_TIME_5 } from '../utils';
4
+ import { QueueBase } from './queue-base';
5
+ /**
6
+ * The QueueEvents class is used for listening to the global events
7
+ * emitted by a given queue.
8
+ *
9
+ * This class requires a dedicated redis connection.
10
+ *
11
+ */
12
+ export class QueueEvents extends QueueBase {
13
+ constructor(name, _a = {}, Connection) {
14
+ var { connection, autorun = true } = _a, opts = __rest(_a, ["connection", "autorun"]);
15
+ super(name, Object.assign(Object.assign({}, opts), { connection: isRedisInstance(connection)
16
+ ? connection.duplicate()
17
+ : connection }), Connection);
18
+ this.running = false;
19
+ this.opts = Object.assign({
20
+ blockingTimeout: 10000,
21
+ }, this.opts);
22
+ if (autorun) {
23
+ this.run().catch(error => this.emit('error', error));
24
+ }
25
+ }
26
+ emit(event, ...args) {
27
+ return super.emit(event, ...args);
28
+ }
29
+ off(eventName, listener) {
30
+ super.off(eventName, listener);
31
+ return this;
32
+ }
33
+ on(event, listener) {
34
+ super.on(event, listener);
35
+ return this;
36
+ }
37
+ once(event, listener) {
38
+ super.once(event, listener);
39
+ return this;
40
+ }
41
+ async run() {
42
+ if (!this.running) {
43
+ try {
44
+ this.running = true;
45
+ const client = await this.client;
46
+ await this.consumeEvents(client);
47
+ }
48
+ catch (error) {
49
+ this.running = false;
50
+ throw error;
51
+ }
52
+ }
53
+ else {
54
+ throw new Error('Queue Events is already running.');
55
+ }
56
+ }
57
+ async consumeEvents(client) {
58
+ const opts = this.opts;
59
+ const key = this.keys.events;
60
+ let id = opts.lastEventId || '$';
61
+ while (!this.closing) {
62
+ try {
63
+ // Cast to actual return type, see: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/44301
64
+ const data = (await client.xread('BLOCK', opts.blockingTimeout, 'STREAMS', key, id));
65
+ if (data) {
66
+ const stream = data[0];
67
+ const events = stream[1];
68
+ for (let i = 0; i < events.length; i++) {
69
+ id = events[i][0];
70
+ const args = array2obj(events[i][1]);
71
+ //
72
+ // TODO: we may need to have a separate xtream for progress data
73
+ // to avoid this hack.
74
+ switch (args.event) {
75
+ case 'progress':
76
+ args.data = JSON.parse(args.data);
77
+ break;
78
+ case 'completed':
79
+ args.returnvalue = JSON.parse(args.returnvalue);
80
+ break;
81
+ }
82
+ const { event } = args, restArgs = __rest(args, ["event"]);
83
+ if (event === 'drained') {
84
+ this.emit(event, id);
85
+ }
86
+ else {
87
+ this.emit(event, restArgs, id);
88
+ this.emit(`${event}:${restArgs.jobId}`, restArgs, id);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ catch (err) {
94
+ if (isNotConnectionError(err)) {
95
+ throw err;
96
+ }
97
+ await delay(DELAY_TIME_5);
98
+ }
99
+ }
100
+ }
101
+ close() {
102
+ if (!this.closing) {
103
+ this.closing = this.disconnect();
104
+ }
105
+ return this.closing;
106
+ }
107
+ }
108
+ //# sourceMappingURL=queue-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-events.js","sourceRoot":"","sources":["../../../src/classes/queue-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { QueueBase } from './queue-base';
2
+ import { Job } from './job';
3
+ export declare class QueueGetters extends QueueBase {
4
+ getJob(jobId: string): Promise<Job | undefined>;
5
+ private commandByType;
6
+ /**
7
+ Returns the number of jobs waiting to be processed.
8
+ */
9
+ count(): Promise<number>;
10
+ /**
11
+ * Job counts by type
12
+ *
13
+ * Queue#getJobCountByTypes('completed') => completed count
14
+ * Queue#getJobCountByTypes('completed,failed') => completed + failed count
15
+ * Queue#getJobCountByTypes('completed', 'failed') => completed + failed count
16
+ * Queue#getJobCountByTypes('completed', 'waiting', 'failed') => completed + waiting + failed count
17
+ */
18
+ getJobCountByTypes(...types: string[]): Promise<number>;
19
+ /**
20
+ * Returns the job counts for each type specified or every list/set in the queue by default.
21
+ *
22
+ * @returns An object, key (type) and value (count)
23
+ */
24
+ getJobCounts(...types: string[]): Promise<{
25
+ [index: string]: number;
26
+ }>;
27
+ getCompletedCount(): Promise<number>;
28
+ getFailedCount(): Promise<number>;
29
+ getDelayedCount(): Promise<number>;
30
+ getActiveCount(): Promise<number>;
31
+ getWaitingCount(): Promise<number>;
32
+ getWaitingChildrenCount(): Promise<number>;
33
+ getWaiting(start?: number, end?: number): Promise<Job<any, any, string>[]>;
34
+ getWaitingChildren(start?: number, end?: number): Promise<Job<any, any, string>[]>;
35
+ getActive(start?: number, end?: number): Promise<Job<any, any, string>[]>;
36
+ getDelayed(start?: number, end?: number): Promise<Job<any, any, string>[]>;
37
+ getCompleted(start?: number, end?: number): Promise<Job<any, any, string>[]>;
38
+ getFailed(start?: number, end?: number): Promise<Job<any, any, string>[]>;
39
+ getRanges(types: string[], start?: number, end?: number, asc?: boolean): Promise<any[]>;
40
+ getJobs(types: string[] | string, start?: number, end?: number, asc?: boolean): Promise<Job<any, any, string>[]>;
41
+ getJobLogs(jobId: string, start?: number, end?: number, asc?: boolean): Promise<{
42
+ logs: [string];
43
+ count: number;
44
+ }>;
45
+ /**
46
+ * Get worker list related to the queue.
47
+ *
48
+ * @returns - Returns an array with workers info.
49
+ */
50
+ getWorkers(): Promise<{
51
+ [index: string]: string;
52
+ }[]>;
53
+ private parseClientList;
54
+ }