bunqueue 1.9.7 → 1.9.8

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 (145) hide show
  1. package/dist/application/backgroundTasks.d.ts +3 -6
  2. package/dist/application/backgroundTasks.d.ts.map +1 -1
  3. package/dist/application/backgroundTasks.js +9 -172
  4. package/dist/application/backgroundTasks.js.map +1 -1
  5. package/dist/application/cleanupTasks.d.ts +1 -1
  6. package/dist/application/cleanupTasks.d.ts.map +1 -1
  7. package/dist/application/cleanupTasks.js +57 -22
  8. package/dist/application/cleanupTasks.js.map +1 -1
  9. package/dist/application/clientTracking.d.ts +22 -0
  10. package/dist/application/clientTracking.d.ts.map +1 -0
  11. package/dist/application/clientTracking.js +122 -0
  12. package/dist/application/clientTracking.js.map +1 -0
  13. package/dist/application/contextFactory.d.ts +97 -0
  14. package/dist/application/contextFactory.d.ts.map +1 -0
  15. package/dist/application/contextFactory.js +169 -0
  16. package/dist/application/contextFactory.js.map +1 -0
  17. package/dist/application/dependencyProcessor.d.ts +11 -0
  18. package/dist/application/dependencyProcessor.d.ts.map +1 -0
  19. package/dist/application/dependencyProcessor.js +69 -0
  20. package/dist/application/dependencyProcessor.js.map +1 -0
  21. package/dist/application/dlqManager.d.ts +12 -0
  22. package/dist/application/dlqManager.d.ts.map +1 -1
  23. package/dist/application/dlqManager.js +36 -0
  24. package/dist/application/dlqManager.js.map +1 -1
  25. package/dist/application/lockManager.d.ts +2 -49
  26. package/dist/application/lockManager.d.ts.map +1 -1
  27. package/dist/application/lockManager.js +73 -262
  28. package/dist/application/lockManager.js.map +1 -1
  29. package/dist/application/lockOperations.d.ts +39 -0
  30. package/dist/application/lockOperations.d.ts.map +1 -0
  31. package/dist/application/lockOperations.js +101 -0
  32. package/dist/application/lockOperations.js.map +1 -0
  33. package/dist/application/operations/ack.d.ts +0 -5
  34. package/dist/application/operations/ack.d.ts.map +1 -1
  35. package/dist/application/operations/ack.js +30 -258
  36. package/dist/application/operations/ack.js.map +1 -1
  37. package/dist/application/operations/ackHelpers.d.ts +78 -0
  38. package/dist/application/operations/ackHelpers.d.ts.map +1 -0
  39. package/dist/application/operations/ackHelpers.js +162 -0
  40. package/dist/application/operations/ackHelpers.js.map +1 -0
  41. package/dist/application/operations/jobManagement.d.ts +2 -0
  42. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  43. package/dist/application/operations/jobManagement.js +8 -0
  44. package/dist/application/operations/jobManagement.js.map +1 -1
  45. package/dist/application/operations/push.d.ts.map +1 -1
  46. package/dist/application/operations/push.js +8 -2
  47. package/dist/application/operations/push.js.map +1 -1
  48. package/dist/application/operations/queryOperations.d.ts +11 -0
  49. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  50. package/dist/application/operations/queryOperations.js +32 -0
  51. package/dist/application/operations/queryOperations.js.map +1 -1
  52. package/dist/application/queueManager.d.ts +3 -11
  53. package/dist/application/queueManager.d.ts.map +1 -1
  54. package/dist/application/queueManager.js +90 -243
  55. package/dist/application/queueManager.js.map +1 -1
  56. package/dist/application/stallDetection.d.ts +11 -0
  57. package/dist/application/stallDetection.d.ts.map +1 -0
  58. package/dist/application/stallDetection.js +128 -0
  59. package/dist/application/stallDetection.js.map +1 -0
  60. package/dist/domain/queue/dependencyTracker.d.ts +74 -0
  61. package/dist/domain/queue/dependencyTracker.d.ts.map +1 -0
  62. package/dist/domain/queue/dependencyTracker.js +126 -0
  63. package/dist/domain/queue/dependencyTracker.js.map +1 -0
  64. package/dist/domain/queue/dlqShard.d.ts +59 -0
  65. package/dist/domain/queue/dlqShard.d.ts.map +1 -0
  66. package/dist/domain/queue/dlqShard.js +165 -0
  67. package/dist/domain/queue/dlqShard.js.map +1 -0
  68. package/dist/domain/queue/limiterManager.d.ts +44 -0
  69. package/dist/domain/queue/limiterManager.d.ts.map +1 -0
  70. package/dist/domain/queue/limiterManager.js +99 -0
  71. package/dist/domain/queue/limiterManager.js.map +1 -0
  72. package/dist/domain/queue/shard.d.ts +29 -122
  73. package/dist/domain/queue/shard.d.ts.map +1 -1
  74. package/dist/domain/queue/shard.js +152 -426
  75. package/dist/domain/queue/shard.js.map +1 -1
  76. package/dist/domain/queue/temporalManager.d.ts +81 -0
  77. package/dist/domain/queue/temporalManager.d.ts.map +1 -0
  78. package/dist/domain/queue/temporalManager.js +149 -0
  79. package/dist/domain/queue/temporalManager.js.map +1 -0
  80. package/dist/domain/queue/uniqueKeyManager.d.ts +32 -0
  81. package/dist/domain/queue/uniqueKeyManager.d.ts.map +1 -0
  82. package/dist/domain/queue/uniqueKeyManager.js +87 -0
  83. package/dist/domain/queue/uniqueKeyManager.js.map +1 -0
  84. package/dist/infrastructure/backup/s3Backup.d.ts +3 -40
  85. package/dist/infrastructure/backup/s3Backup.d.ts.map +1 -1
  86. package/dist/infrastructure/backup/s3Backup.js +10 -182
  87. package/dist/infrastructure/backup/s3Backup.js.map +1 -1
  88. package/dist/infrastructure/backup/s3BackupConfig.d.ts +67 -0
  89. package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +1 -0
  90. package/dist/infrastructure/backup/s3BackupConfig.js +48 -0
  91. package/dist/infrastructure/backup/s3BackupConfig.js.map +1 -0
  92. package/dist/infrastructure/backup/s3BackupOperations.d.ts +23 -0
  93. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -0
  94. package/dist/infrastructure/backup/s3BackupOperations.js +170 -0
  95. package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -0
  96. package/dist/infrastructure/persistence/sqlite.d.ts +4 -13
  97. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  98. package/dist/infrastructure/persistence/sqlite.js +23 -178
  99. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  100. package/dist/infrastructure/persistence/sqliteBatch.d.ts +38 -0
  101. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -0
  102. package/dist/infrastructure/persistence/sqliteBatch.js +124 -0
  103. package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -0
  104. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +17 -0
  105. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -0
  106. package/dist/infrastructure/persistence/sqliteSerializer.js +81 -0
  107. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -0
  108. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  109. package/dist/infrastructure/server/handler.js +1 -186
  110. package/dist/infrastructure/server/handler.js.map +1 -1
  111. package/dist/infrastructure/server/handlerRoutes.d.ts +23 -0
  112. package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -0
  113. package/dist/infrastructure/server/handlerRoutes.js +190 -0
  114. package/dist/infrastructure/server/handlerRoutes.js.map +1 -0
  115. package/dist/infrastructure/server/http.d.ts +4 -25
  116. package/dist/infrastructure/server/http.d.ts.map +1 -1
  117. package/dist/infrastructure/server/http.js +43 -285
  118. package/dist/infrastructure/server/http.js.map +1 -1
  119. package/dist/infrastructure/server/httpEndpoints.d.ts +19 -0
  120. package/dist/infrastructure/server/httpEndpoints.d.ts.map +1 -0
  121. package/dist/infrastructure/server/httpEndpoints.js +151 -0
  122. package/dist/infrastructure/server/httpEndpoints.js.map +1 -0
  123. package/dist/infrastructure/server/sseHandler.d.ts +27 -0
  124. package/dist/infrastructure/server/sseHandler.d.ts.map +1 -0
  125. package/dist/infrastructure/server/sseHandler.js +77 -0
  126. package/dist/infrastructure/server/sseHandler.js.map +1 -0
  127. package/dist/infrastructure/server/wsHandler.d.ts +31 -0
  128. package/dist/infrastructure/server/wsHandler.d.ts.map +1 -0
  129. package/dist/infrastructure/server/wsHandler.js +63 -0
  130. package/dist/infrastructure/server/wsHandler.js.map +1 -0
  131. package/dist/mcp/index.js +3 -465
  132. package/dist/mcp/index.js.map +1 -1
  133. package/dist/mcp/mcpHandlers.d.ts +129 -0
  134. package/dist/mcp/mcpHandlers.d.ts.map +1 -0
  135. package/dist/mcp/mcpHandlers.js +204 -0
  136. package/dist/mcp/mcpHandlers.js.map +1 -0
  137. package/dist/mcp/mcpTools.d.ts +15 -0
  138. package/dist/mcp/mcpTools.d.ts.map +1 -0
  139. package/dist/mcp/mcpTools.js +277 -0
  140. package/dist/mcp/mcpTools.js.map +1 -0
  141. package/package.json +2 -2
  142. package/dist/cli/dashboard.d.ts +0 -32
  143. package/dist/cli/dashboard.d.ts.map +0 -1
  144. package/dist/cli/dashboard.js +0 -183
  145. package/dist/cli/dashboard.js.map +0 -1
@@ -13,7 +13,7 @@ import { RWLock } from '../shared/lock';
13
13
  import { shardIndex, SHARD_COUNT } from '../shared/hash';
14
14
  import { pushJob, pushJobBatch } from './operations/push';
15
15
  import { pullJob, pullJobBatch } from './operations/pull';
16
- import { ackJob, ackJobBatch, ackJobBatchWithResults, failJob, } from './operations/ack';
16
+ import { ackJob, ackJobBatch, ackJobBatchWithResults, failJob } from './operations/ack';
17
17
  import * as queueControl from './operations/queueControl';
18
18
  import * as jobMgmt from './operations/jobManagement';
19
19
  import * as queryOps from './operations/queryOperations';
@@ -25,6 +25,7 @@ import { DEFAULT_CONFIG } from './types';
25
25
  import * as lockMgr from './lockManager';
26
26
  import * as bgTasks from './backgroundTasks';
27
27
  import * as statsMgr from './statsManager';
28
+ import { ContextFactory } from './contextFactory';
28
29
  /**
29
30
  * QueueManager - Central coordinator
30
31
  */
@@ -46,7 +47,7 @@ export class QueueManager {
46
47
  pendingDepChecks = new Set();
47
48
  // Two-phase stall detection
48
49
  stalledCandidates = new Set();
49
- // Lock-based job ownership tracking (BullMQ-style)
50
+ // Lock-based job ownership tracking
50
51
  jobLocks = new Map();
51
52
  clientJobs = new Map();
52
53
  // Cron scheduler
@@ -67,8 +68,10 @@ export class QueueManager {
67
68
  startTime = Date.now();
68
69
  // Background task handles
69
70
  backgroundTaskHandles = null;
70
- // Queue names cache for O(1) listQueues
71
+ // Queue names cache
71
72
  queueNamesCache = new Set();
73
+ // Context factory
74
+ contextFactory;
72
75
  constructor(config = {}) {
73
76
  this.config = { ...DEFAULT_CONFIG, ...config };
74
77
  this.storage = config.dataPath ? new SqliteStorage({ path: config.dataPath }) : null;
@@ -95,28 +98,17 @@ export class QueueManager {
95
98
  this.webhookManager = new WebhookManager();
96
99
  this.workerManager = new WorkerManager();
97
100
  this.eventsManager = new EventsManager(this.webhookManager);
101
+ // Initialize context factory
102
+ this.contextFactory = new ContextFactory(this.getContextDependencies(), this.getContextCallbacks());
98
103
  // Load and start
99
- bgTasks.recover(this.getBackgroundContext());
100
- // Load cron jobs from storage
104
+ bgTasks.recover(this.contextFactory.getBackgroundContext());
101
105
  if (this.storage) {
102
106
  this.cronScheduler.load(this.storage.loadCronJobs());
103
107
  }
104
- this.backgroundTaskHandles = bgTasks.startBackgroundTasks(this.getBackgroundContext(), this.cronScheduler);
108
+ this.backgroundTaskHandles = bgTasks.startBackgroundTasks(this.contextFactory.getBackgroundContext(), this.cronScheduler);
105
109
  }
106
- // ============ Context Builders ============
107
- getLockContext() {
108
- return {
109
- jobIndex: this.jobIndex,
110
- jobLocks: this.jobLocks,
111
- clientJobs: this.clientJobs,
112
- processingShards: this.processingShards,
113
- processingLocks: this.processingLocks,
114
- shards: this.shards,
115
- shardLocks: this.shardLocks,
116
- eventsManager: this.eventsManager,
117
- };
118
- }
119
- getBackgroundContext() {
110
+ // ============ Context Dependencies ============
111
+ getContextDependencies() {
120
112
  return {
121
113
  config: this.config,
122
114
  storage: this.storage,
@@ -138,68 +130,16 @@ export class QueueManager {
138
130
  webhookManager: this.webhookManager,
139
131
  metrics: this.metrics,
140
132
  startTime: this.startTime,
141
- fail: this.fail.bind(this),
142
- registerQueueName: this.registerQueueName.bind(this),
143
- unregisterQueueName: this.unregisterQueueName.bind(this),
144
- };
145
- }
146
- getStatsContext() {
147
- return {
148
- shards: this.shards,
149
- processingShards: this.processingShards,
150
- completedJobs: this.completedJobs,
151
- jobIndex: this.jobIndex,
152
- jobResults: this.jobResults,
153
- jobLogs: this.jobLogs,
154
- customIdMap: this.customIdMap,
155
- jobLocks: this.jobLocks,
156
- clientJobs: this.clientJobs,
157
- pendingDepChecks: this.pendingDepChecks,
158
- stalledCandidates: this.stalledCandidates,
159
- metrics: this.metrics,
160
- startTime: this.startTime,
161
- };
162
- }
163
- getPushContext() {
164
- return {
165
- storage: this.storage,
166
- shards: this.shards,
167
- shardLocks: this.shardLocks,
168
- completedJobs: this.completedJobs,
169
- customIdMap: this.customIdMap,
170
- jobIndex: this.jobIndex,
171
- totalPushed: this.metrics.totalPushed,
172
- broadcast: this.eventsManager.broadcast.bind(this.eventsManager),
173
- };
174
- }
175
- getPullContext() {
176
- return {
177
- storage: this.storage,
178
- shards: this.shards,
179
- shardLocks: this.shardLocks,
180
- processingShards: this.processingShards,
181
- processingLocks: this.processingLocks,
182
- jobIndex: this.jobIndex,
183
- totalPulled: this.metrics.totalPulled,
184
- broadcast: this.eventsManager.broadcast.bind(this.eventsManager),
133
+ maxLogsPerJob: this.maxLogsPerJob,
185
134
  };
186
135
  }
187
- getAckContext() {
136
+ getContextCallbacks() {
188
137
  return {
189
- storage: this.storage,
190
- shards: this.shards,
191
- shardLocks: this.shardLocks,
192
- processingShards: this.processingShards,
193
- processingLocks: this.processingLocks,
194
- completedJobs: this.completedJobs,
195
- jobResults: this.jobResults,
196
- jobIndex: this.jobIndex,
197
- totalCompleted: this.metrics.totalCompleted,
198
- totalFailed: this.metrics.totalFailed,
199
- broadcast: this.eventsManager.broadcast.bind(this.eventsManager),
138
+ fail: this.fail.bind(this),
139
+ registerQueueName: this.registerQueueName.bind(this),
140
+ unregisterQueueName: this.unregisterQueueName.bind(this),
200
141
  onJobCompleted: this.onJobCompleted.bind(this),
201
142
  onJobsCompleted: this.onJobsCompleted.bind(this),
202
- needsBroadcast: this.eventsManager.needsBroadcast.bind(this.eventsManager),
203
143
  hasPendingDeps: this.hasPendingDeps.bind(this),
204
144
  onRepeat: this.handleRepeat.bind(this),
205
145
  };
@@ -229,115 +169,87 @@ export class QueueManager {
229
169
  },
230
170
  });
231
171
  }
232
- getJobMgmtContext() {
233
- return {
234
- storage: this.storage,
235
- shards: this.shards,
236
- shardLocks: this.shardLocks,
237
- processingShards: this.processingShards,
238
- processingLocks: this.processingLocks,
239
- jobIndex: this.jobIndex,
240
- webhookManager: this.webhookManager,
241
- };
242
- }
243
- getQueryContext() {
244
- return {
245
- storage: this.storage,
246
- shards: this.shards,
247
- shardLocks: this.shardLocks,
248
- processingShards: this.processingShards,
249
- processingLocks: this.processingLocks,
250
- jobIndex: this.jobIndex,
251
- completedJobs: this.completedJobs,
252
- jobResults: this.jobResults,
253
- customIdMap: this.customIdMap,
254
- };
255
- }
256
- getDlqContext() {
257
- return {
258
- shards: this.shards,
259
- jobIndex: this.jobIndex,
260
- storage: this.storage,
261
- };
262
- }
263
172
  // ============ Core Operations ============
264
173
  async push(queue, input) {
265
174
  this.registerQueueName(queue);
266
- return pushJob(queue, input, this.getPushContext());
175
+ return pushJob(queue, input, this.contextFactory.getPushContext());
267
176
  }
268
177
  async pushBatch(queue, inputs) {
269
178
  this.registerQueueName(queue);
270
- return pushJobBatch(queue, inputs, this.getPushContext());
179
+ return pushJobBatch(queue, inputs, this.contextFactory.getPushContext());
271
180
  }
272
181
  async pull(queue, timeoutMs = 0) {
273
- return pullJob(queue, timeoutMs, this.getPullContext());
182
+ return pullJob(queue, timeoutMs, this.contextFactory.getPullContext());
274
183
  }
275
184
  async pullWithLock(queue, owner, timeoutMs = 0, lockTtl = DEFAULT_LOCK_TTL) {
276
- const job = await pullJob(queue, timeoutMs, this.getPullContext());
185
+ const job = await pullJob(queue, timeoutMs, this.contextFactory.getPullContext());
277
186
  if (!job)
278
187
  return { job: null, token: null };
279
- const token = lockMgr.createLock(job.id, owner, this.getLockContext(), lockTtl);
188
+ const token = lockMgr.createLock(job.id, owner, this.contextFactory.getLockContext(), lockTtl);
280
189
  return { job, token };
281
190
  }
282
191
  async pullBatch(queue, count, timeoutMs = 0) {
283
- return pullJobBatch(queue, count, timeoutMs, this.getPullContext());
192
+ return pullJobBatch(queue, count, timeoutMs, this.contextFactory.getPullContext());
284
193
  }
285
194
  async pullBatchWithLock(queue, count, owner, timeoutMs = 0, lockTtl = DEFAULT_LOCK_TTL) {
286
- const jobs = await pullJobBatch(queue, count, timeoutMs, this.getPullContext());
195
+ const jobs = await pullJobBatch(queue, count, timeoutMs, this.contextFactory.getPullContext());
287
196
  const tokens = [];
288
197
  for (const job of jobs) {
289
- const token = lockMgr.createLock(job.id, owner, this.getLockContext(), lockTtl);
198
+ const token = lockMgr.createLock(job.id, owner, this.contextFactory.getLockContext(), lockTtl);
290
199
  tokens.push(token ?? '');
291
200
  }
292
201
  return { jobs, tokens };
293
202
  }
294
203
  async ack(jobId, result, token) {
295
- if (token && !lockMgr.verifyLock(jobId, token, this.getLockContext())) {
204
+ if (token && !lockMgr.verifyLock(jobId, token, this.contextFactory.getLockContext())) {
296
205
  throw new Error(`Invalid or expired lock token for job ${jobId}`);
297
206
  }
298
- await ackJob(jobId, result, this.getAckContext());
299
- lockMgr.releaseLock(jobId, this.getLockContext(), token);
207
+ await ackJob(jobId, result, this.contextFactory.getAckContext());
208
+ lockMgr.releaseLock(jobId, this.contextFactory.getLockContext(), token);
300
209
  }
301
210
  async ackBatch(jobIds, tokens) {
211
+ const lockCtx = this.contextFactory.getLockContext();
302
212
  if (tokens?.length === jobIds.length) {
303
213
  for (let i = 0; i < jobIds.length; i++) {
304
214
  const t = tokens[i];
305
- if (t && !lockMgr.verifyLock(jobIds[i], t, this.getLockContext())) {
215
+ if (t && !lockMgr.verifyLock(jobIds[i], t, lockCtx)) {
306
216
  throw new Error(`Invalid or expired lock token for job ${jobIds[i]}`);
307
217
  }
308
218
  }
309
219
  }
310
- await ackJobBatch(jobIds, this.getAckContext());
220
+ await ackJobBatch(jobIds, this.contextFactory.getAckContext());
311
221
  if (tokens) {
312
222
  for (let i = 0; i < jobIds.length; i++) {
313
- lockMgr.releaseLock(jobIds[i], this.getLockContext(), tokens[i]);
223
+ lockMgr.releaseLock(jobIds[i], lockCtx, tokens[i]);
314
224
  }
315
225
  }
316
226
  }
317
227
  async ackBatchWithResults(items) {
228
+ const lockCtx = this.contextFactory.getLockContext();
318
229
  for (const item of items) {
319
- if (item.token && !lockMgr.verifyLock(item.id, item.token, this.getLockContext())) {
230
+ if (item.token && !lockMgr.verifyLock(item.id, item.token, lockCtx)) {
320
231
  throw new Error(`Invalid or expired lock token for job ${item.id}`);
321
232
  }
322
233
  }
323
- await ackJobBatchWithResults(items, this.getAckContext());
234
+ await ackJobBatchWithResults(items, this.contextFactory.getAckContext());
324
235
  for (const item of items) {
325
- lockMgr.releaseLock(item.id, this.getLockContext(), item.token);
236
+ lockMgr.releaseLock(item.id, lockCtx, item.token);
326
237
  }
327
238
  }
328
239
  async fail(jobId, error, token) {
329
- if (token && !lockMgr.verifyLock(jobId, token, this.getLockContext())) {
240
+ const lockCtx = this.contextFactory.getLockContext();
241
+ if (token && !lockMgr.verifyLock(jobId, token, lockCtx)) {
330
242
  throw new Error(`Invalid or expired lock token for job ${jobId}`);
331
243
  }
332
- await failJob(jobId, error, this.getAckContext());
333
- lockMgr.releaseLock(jobId, this.getLockContext(), token);
244
+ await failJob(jobId, error, this.contextFactory.getAckContext());
245
+ lockMgr.releaseLock(jobId, lockCtx, token);
334
246
  }
335
247
  jobHeartbeat(jobId, token) {
336
248
  const loc = this.jobIndex.get(jobId);
337
249
  if (loc?.type !== 'processing')
338
250
  return false;
339
251
  if (token) {
340
- return lockMgr.renewJobLock(jobId, token, this.getLockContext());
252
+ return lockMgr.renewJobLock(jobId, token, this.contextFactory.getLockContext());
341
253
  }
342
254
  const processing = this.processingShards[loc.shardIdx];
343
255
  const job = processing.get(jobId);
@@ -355,66 +267,66 @@ export class QueueManager {
355
267
  }
356
268
  return count;
357
269
  }
358
- // ============ Lock Management (delegated) ============
270
+ // ============ Lock Management ============
359
271
  createLock(jobId, owner, ttl = DEFAULT_LOCK_TTL) {
360
- return lockMgr.createLock(jobId, owner, this.getLockContext(), ttl);
272
+ return lockMgr.createLock(jobId, owner, this.contextFactory.getLockContext(), ttl);
361
273
  }
362
274
  verifyLock(jobId, token) {
363
- return lockMgr.verifyLock(jobId, token, this.getLockContext());
275
+ return lockMgr.verifyLock(jobId, token, this.contextFactory.getLockContext());
364
276
  }
365
277
  renewJobLock(jobId, token, newTtl) {
366
- return lockMgr.renewJobLock(jobId, token, this.getLockContext(), newTtl);
278
+ return lockMgr.renewJobLock(jobId, token, this.contextFactory.getLockContext(), newTtl);
367
279
  }
368
280
  renewJobLockBatch(items) {
369
- return lockMgr.renewJobLockBatch(items, this.getLockContext());
281
+ return lockMgr.renewJobLockBatch(items, this.contextFactory.getLockContext());
370
282
  }
371
283
  releaseLock(jobId, token) {
372
- return lockMgr.releaseLock(jobId, this.getLockContext(), token);
284
+ return lockMgr.releaseLock(jobId, this.contextFactory.getLockContext(), token);
373
285
  }
374
286
  getLockInfo(jobId) {
375
- return lockMgr.getLockInfo(jobId, this.getLockContext());
287
+ return lockMgr.getLockInfo(jobId, this.contextFactory.getLockContext());
376
288
  }
377
- // ============ Client-Job Tracking (delegated) ============
289
+ // ============ Client-Job Tracking ============
378
290
  registerClientJob(clientId, jobId) {
379
- lockMgr.registerClientJob(clientId, jobId, this.getLockContext());
291
+ lockMgr.registerClientJob(clientId, jobId, this.contextFactory.getLockContext());
380
292
  }
381
293
  unregisterClientJob(clientId, jobId) {
382
- lockMgr.unregisterClientJob(clientId, jobId, this.getLockContext());
294
+ lockMgr.unregisterClientJob(clientId, jobId, this.contextFactory.getLockContext());
383
295
  }
384
296
  releaseClientJobs(clientId) {
385
- return lockMgr.releaseClientJobs(clientId, this.getLockContext());
297
+ return lockMgr.releaseClientJobs(clientId, this.contextFactory.getLockContext());
386
298
  }
387
- // ============ Query Operations (delegated) ============
299
+ // ============ Query Operations ============
388
300
  async getJob(jobId) {
389
- return queryOps.getJob(jobId, this.getQueryContext());
301
+ return queryOps.getJob(jobId, this.contextFactory.getQueryContext());
390
302
  }
391
303
  getResult(jobId) {
392
- return queryOps.getJobResult(jobId, this.getQueryContext());
304
+ return queryOps.getJobResult(jobId, this.contextFactory.getQueryContext());
393
305
  }
394
306
  getJobByCustomId(customId) {
395
- return queryOps.getJobByCustomId(customId, this.getQueryContext());
307
+ return queryOps.getJobByCustomId(customId, this.contextFactory.getQueryContext());
396
308
  }
397
309
  getProgress(jobId) {
398
- return queryOps.getJobProgress(jobId, this.getQueryContext());
310
+ return queryOps.getJobProgress(jobId, this.contextFactory.getQueryContext());
399
311
  }
400
312
  count(queue) {
401
- return queueControl.getQueueCount(queue, { shards: this.shards, jobIndex: this.jobIndex });
313
+ return queueControl.getQueueCount(queue, this.contextFactory.getQueueControlContext());
402
314
  }
403
- // ============ Queue Control (delegated) ============
315
+ // ============ Queue Control ============
404
316
  pause(queue) {
405
- queueControl.pauseQueue(queue, { shards: this.shards, jobIndex: this.jobIndex });
317
+ queueControl.pauseQueue(queue, this.contextFactory.getQueueControlContext());
406
318
  }
407
319
  resume(queue) {
408
- queueControl.resumeQueue(queue, { shards: this.shards, jobIndex: this.jobIndex });
320
+ queueControl.resumeQueue(queue, this.contextFactory.getQueueControlContext());
409
321
  }
410
322
  isPaused(queue) {
411
- return queueControl.isQueuePaused(queue, { shards: this.shards, jobIndex: this.jobIndex });
323
+ return queueControl.isQueuePaused(queue, this.contextFactory.getQueueControlContext());
412
324
  }
413
325
  drain(queue) {
414
- return queueControl.drainQueue(queue, { shards: this.shards, jobIndex: this.jobIndex });
326
+ return queueControl.drainQueue(queue, this.contextFactory.getQueueControlContext());
415
327
  }
416
328
  obliterate(queue) {
417
- queueControl.obliterateQueue(queue, { shards: this.shards, jobIndex: this.jobIndex });
329
+ queueControl.obliterateQueue(queue, this.contextFactory.getQueueControlContext());
418
330
  this.unregisterQueueName(queue);
419
331
  }
420
332
  listQueues() {
@@ -427,7 +339,7 @@ export class QueueManager {
427
339
  this.queueNamesCache.delete(queue);
428
340
  }
429
341
  clean(queue, graceMs, state, limit) {
430
- return queueControl.cleanQueue(queue, graceMs, { shards: this.shards, jobIndex: this.jobIndex }, state, limit);
342
+ return queueControl.cleanQueue(queue, graceMs, this.contextFactory.getQueueControlContext(), state, limit);
431
343
  }
432
344
  getCountsPerPriority(queue) {
433
345
  const idx = shardIndex(queue);
@@ -435,80 +347,24 @@ export class QueueManager {
435
347
  return Object.fromEntries(counts);
436
348
  }
437
349
  getJobs(queue, options = {}) {
438
- const { state, start = 0, end = 100, asc = true } = options;
439
350
  const idx = shardIndex(queue);
440
- const shard = this.shards[idx];
441
- const now = Date.now();
442
- const jobs = [];
443
- if (!state || state === 'waiting') {
444
- jobs.push(...shard
445
- .getQueue(queue)
446
- .values()
447
- .filter((j) => j.runAt <= now));
448
- }
449
- if (!state || state === 'delayed') {
450
- jobs.push(...shard
451
- .getQueue(queue)
452
- .values()
453
- .filter((j) => j.runAt > now));
454
- }
455
- if (!state || state === 'active') {
456
- for (let i = 0; i < SHARD_COUNT; i++) {
457
- for (const job of this.processingShards[i].values()) {
458
- if (job.queue === queue)
459
- jobs.push(job);
460
- }
461
- }
462
- }
463
- if (!state || state === 'failed') {
464
- jobs.push(...shard.getDlq(queue));
465
- }
466
- jobs.sort((a, b) => (asc ? a.createdAt - b.createdAt : b.createdAt - a.createdAt));
467
- return jobs.slice(start, end);
351
+ return queryOps.getJobs(queue, idx, options, {
352
+ ...this.contextFactory.getQueryContext(),
353
+ shardCount: SHARD_COUNT,
354
+ });
468
355
  }
469
- // ============ DLQ Operations (delegated) ============
356
+ // ============ DLQ Operations ============
470
357
  getDlq(queue, count) {
471
- return dlqOps.getDlqJobs(queue, this.getDlqContext(), count);
358
+ return dlqOps.getDlqJobs(queue, this.contextFactory.getDlqContext(), count);
472
359
  }
473
360
  retryDlq(queue, jobId) {
474
- return dlqOps.retryDlqJobs(queue, this.getDlqContext(), jobId);
361
+ return dlqOps.retryDlqJobs(queue, this.contextFactory.getDlqContext(), jobId);
475
362
  }
476
363
  purgeDlq(queue) {
477
- return dlqOps.purgeDlqJobs(queue, this.getDlqContext());
364
+ return dlqOps.purgeDlqJobs(queue, this.contextFactory.getDlqContext());
478
365
  }
479
366
  retryCompleted(queue, jobId) {
480
- if (jobId) {
481
- if (!this.completedJobs.has(jobId))
482
- return 0;
483
- const job = this.storage?.getJob(jobId);
484
- if (job?.queue !== queue)
485
- return 0;
486
- return this.requeueCompletedJob(job);
487
- }
488
- let count = 0;
489
- for (const id of this.completedJobs) {
490
- const job = this.storage?.getJob(id);
491
- if (job?.queue === queue)
492
- count += this.requeueCompletedJob(job);
493
- }
494
- return count;
495
- }
496
- requeueCompletedJob(job) {
497
- job.attempts = 0;
498
- job.startedAt = null;
499
- job.completedAt = null;
500
- job.runAt = Date.now();
501
- job.progress = 0;
502
- const idx = shardIndex(job.queue);
503
- const shard = this.shards[idx];
504
- shard.getQueue(job.queue).push(job);
505
- shard.incrementQueued(job.id, false, job.createdAt, job.queue, job.runAt);
506
- this.jobIndex.set(job.id, { type: 'queue', shardIdx: idx, queueName: job.queue });
507
- this.completedJobs.delete(job.id);
508
- this.jobResults.delete(job.id);
509
- this.storage?.updateForRetry(job);
510
- shard.notify();
511
- return 1;
367
+ return dlqOps.retryCompletedJobs(queue, this.contextFactory.getRetryCompletedContext(), jobId);
512
368
  }
513
369
  // ============ Rate Limiting ============
514
370
  setRateLimit(queue, limit) {
@@ -523,45 +379,37 @@ export class QueueManager {
523
379
  clearConcurrency(queue) {
524
380
  this.shards[shardIndex(queue)].clearConcurrency(queue);
525
381
  }
526
- // ============ Job Management (delegated) ============
382
+ // ============ Job Management ============
527
383
  async cancel(jobId) {
528
- return jobMgmt.cancelJob(jobId, this.getJobMgmtContext());
384
+ return jobMgmt.cancelJob(jobId, this.contextFactory.getJobMgmtContext());
529
385
  }
530
386
  async updateProgress(jobId, progress, message) {
531
- return jobMgmt.updateJobProgress(jobId, progress, this.getJobMgmtContext(), message);
387
+ return jobMgmt.updateJobProgress(jobId, progress, this.contextFactory.getJobMgmtContext(), message);
532
388
  }
533
389
  async updateJobData(jobId, data) {
534
- return jobMgmt.updateJobData(jobId, data, this.getJobMgmtContext());
390
+ return jobMgmt.updateJobData(jobId, data, this.contextFactory.getJobMgmtContext());
535
391
  }
536
392
  async changePriority(jobId, priority) {
537
- return jobMgmt.changeJobPriority(jobId, priority, this.getJobMgmtContext());
393
+ return jobMgmt.changeJobPriority(jobId, priority, this.contextFactory.getJobMgmtContext());
538
394
  }
539
395
  async promote(jobId) {
540
- return jobMgmt.promoteJob(jobId, this.getJobMgmtContext());
396
+ return jobMgmt.promoteJob(jobId, this.contextFactory.getJobMgmtContext());
541
397
  }
542
398
  async moveToDelayed(jobId, delay) {
543
- return jobMgmt.moveJobToDelayed(jobId, delay, this.getJobMgmtContext());
399
+ return jobMgmt.moveJobToDelayed(jobId, delay, this.contextFactory.getJobMgmtContext());
544
400
  }
545
401
  async discard(jobId) {
546
- return jobMgmt.discardJob(jobId, this.getJobMgmtContext());
402
+ return jobMgmt.discardJob(jobId, this.contextFactory.getJobMgmtContext());
547
403
  }
548
- // ============ Job Logs (delegated) ============
404
+ // ============ Job Logs ============
549
405
  addLog(jobId, message, level = 'info') {
550
- return logsOps.addJobLog(jobId, message, { jobIndex: this.jobIndex, jobLogs: this.jobLogs, maxLogsPerJob: this.maxLogsPerJob }, level);
406
+ return logsOps.addJobLog(jobId, message, this.contextFactory.getLogsContext(), level);
551
407
  }
552
408
  getLogs(jobId) {
553
- return logsOps.getJobLogs(jobId, {
554
- jobIndex: this.jobIndex,
555
- jobLogs: this.jobLogs,
556
- maxLogsPerJob: this.maxLogsPerJob,
557
- });
409
+ return logsOps.getJobLogs(jobId, this.contextFactory.getLogsContext());
558
410
  }
559
411
  clearLogs(jobId) {
560
- logsOps.clearJobLogs(jobId, {
561
- jobIndex: this.jobIndex,
562
- jobLogs: this.jobLogs,
563
- maxLogsPerJob: this.maxLogsPerJob,
564
- });
412
+ logsOps.clearJobLogs(jobId, this.contextFactory.getLogsContext());
565
413
  }
566
414
  // ============ Metrics ============
567
415
  getPrometheusMetrics() {
@@ -599,7 +447,6 @@ export class QueueManager {
599
447
  getCompletedJobs() {
600
448
  return this.completedJobs;
601
449
  }
602
- /** Expose shards for testing (internal use only) */
603
450
  getShards() {
604
451
  return this.shards;
605
452
  }
@@ -617,15 +464,15 @@ export class QueueManager {
617
464
  }
618
465
  return false;
619
466
  }
620
- // ============ Stats (delegated) ============
467
+ // ============ Stats ============
621
468
  getStats() {
622
- return statsMgr.getStats(this.getStatsContext(), this.cronScheduler);
469
+ return statsMgr.getStats(this.contextFactory.getStatsContext(), this.cronScheduler);
623
470
  }
624
471
  getMemoryStats() {
625
- return statsMgr.getMemoryStats(this.getStatsContext());
472
+ return statsMgr.getMemoryStats(this.contextFactory.getStatsContext());
626
473
  }
627
474
  compactMemory() {
628
- statsMgr.compactMemory(this.getStatsContext());
475
+ statsMgr.compactMemory(this.contextFactory.getStatsContext());
629
476
  }
630
477
  // ============ Lifecycle ============
631
478
  shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"queueManager.js","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueManager.js","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}