bunqueue 1.0.4 → 1.0.5

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 (65) hide show
  1. package/README.md +63 -0
  2. package/dist/application/eventsManager.d.ts +2 -0
  3. package/dist/application/eventsManager.d.ts.map +1 -1
  4. package/dist/application/eventsManager.js +13 -1
  5. package/dist/application/eventsManager.js.map +1 -1
  6. package/dist/application/jobLogsManager.d.ts +2 -1
  7. package/dist/application/jobLogsManager.d.ts.map +1 -1
  8. package/dist/application/jobLogsManager.js.map +1 -1
  9. package/dist/application/operations/ack.d.ts +3 -2
  10. package/dist/application/operations/ack.d.ts.map +1 -1
  11. package/dist/application/operations/ack.js.map +1 -1
  12. package/dist/application/operations/jobManagement.d.ts +3 -0
  13. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  14. package/dist/application/operations/jobManagement.js +90 -50
  15. package/dist/application/operations/jobManagement.js.map +1 -1
  16. package/dist/application/operations/push.d.ts +3 -2
  17. package/dist/application/operations/push.d.ts.map +1 -1
  18. package/dist/application/operations/push.js.map +1 -1
  19. package/dist/application/operations/queryOperations.d.ts +4 -3
  20. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  21. package/dist/application/operations/queryOperations.js.map +1 -1
  22. package/dist/application/queueManager.d.ts +19 -4
  23. package/dist/application/queueManager.d.ts.map +1 -1
  24. package/dist/application/queueManager.js +159 -30
  25. package/dist/application/queueManager.js.map +1 -1
  26. package/dist/application/webhookManager.d.ts.map +1 -1
  27. package/dist/application/webhookManager.js +4 -3
  28. package/dist/application/webhookManager.js.map +1 -1
  29. package/dist/application/workerManager.d.ts.map +1 -1
  30. package/dist/application/workerManager.js +5 -3
  31. package/dist/application/workerManager.js.map +1 -1
  32. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  33. package/dist/infrastructure/persistence/sqlite.js +22 -6
  34. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  35. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
  36. package/dist/infrastructure/scheduler/cronScheduler.js +13 -8
  37. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
  38. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  39. package/dist/infrastructure/server/handlers/core.js +20 -1
  40. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  41. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -1
  42. package/dist/infrastructure/server/handlers/monitoring.js +5 -0
  43. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
  44. package/dist/infrastructure/server/http.d.ts.map +1 -1
  45. package/dist/infrastructure/server/http.js +50 -2
  46. package/dist/infrastructure/server/http.js.map +1 -1
  47. package/dist/infrastructure/server/protocol.d.ts +10 -0
  48. package/dist/infrastructure/server/protocol.d.ts.map +1 -1
  49. package/dist/infrastructure/server/protocol.js +104 -0
  50. package/dist/infrastructure/server/protocol.js.map +1 -1
  51. package/dist/infrastructure/server/rateLimiter.d.ts +2 -0
  52. package/dist/infrastructure/server/rateLimiter.d.ts.map +1 -1
  53. package/dist/infrastructure/server/rateLimiter.js +7 -0
  54. package/dist/infrastructure/server/rateLimiter.js.map +1 -1
  55. package/dist/main.js +7 -1
  56. package/dist/main.js.map +1 -1
  57. package/dist/shared/logger.d.ts +3 -0
  58. package/dist/shared/logger.d.ts.map +1 -1
  59. package/dist/shared/logger.js +3 -0
  60. package/dist/shared/logger.js.map +1 -1
  61. package/dist/shared/lru.d.ts +76 -0
  62. package/dist/shared/lru.d.ts.map +1 -0
  63. package/dist/shared/lru.js +173 -0
  64. package/dist/shared/lru.js.map +1 -0
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -658,6 +658,69 @@ docker compose up -d
658
658
  docker compose --profile dev up bunqueue-dev
659
659
  ```
660
660
 
661
+ ## Deployment
662
+
663
+ bunqueue requires a **persistent server** with filesystem access for SQLite. It is **not compatible** with serverless platforms like Vercel or Cloudflare Workers.
664
+
665
+ ### Compatible Platforms
666
+
667
+ | Platform | Bun | SQLite | TCP | Notes |
668
+ |----------|:---:|:------:|:---:|-------|
669
+ | [Fly.io](https://fly.io) | ✅ | ✅ | ✅ | Recommended - persistent volumes, global deployment |
670
+ | [Railway](https://railway.app) | ✅ | ✅ | ✅ | Easy deploy from GitHub |
671
+ | [Render](https://render.com) | ✅ | ✅ | ✅ | Docker support, persistent disks |
672
+ | [DigitalOcean](https://digitalocean.com) | ✅ | ✅ | ✅ | App Platform or Droplets |
673
+ | Any VPS | ✅ | ✅ | ✅ | Full control |
674
+
675
+ ### Fly.io (Recommended)
676
+
677
+ ```bash
678
+ # Install flyctl
679
+ curl -L https://fly.io/install.sh | sh
680
+
681
+ # Launch (uses existing Dockerfile)
682
+ fly launch
683
+
684
+ # Create persistent volume for SQLite
685
+ fly volumes create bunqueue_data --size 1
686
+
687
+ # Set secrets
688
+ fly secrets set AUTH_TOKENS=your-secret-token
689
+
690
+ # Deploy
691
+ fly deploy
692
+ ```
693
+
694
+ Add to `fly.toml`:
695
+ ```toml
696
+ [mounts]
697
+ source = "bunqueue_data"
698
+ destination = "/app/data"
699
+
700
+ [env]
701
+ DATA_PATH = "/app/data/bunqueue.db"
702
+ ```
703
+
704
+ ### Railway
705
+
706
+ [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template)
707
+
708
+ ```bash
709
+ # Or via CLI
710
+ railway login
711
+ railway init
712
+ railway up
713
+ ```
714
+
715
+ ### Not Compatible
716
+
717
+ | Platform | Reason |
718
+ |----------|--------|
719
+ | Vercel | Serverless functions, no persistent filesystem, no TCP |
720
+ | Cloudflare Workers | V8 isolates (not Bun), no filesystem, no TCP |
721
+ | AWS Lambda | Serverless, no persistent storage |
722
+ | Netlify Functions | Serverless, no filesystem |
723
+
661
724
  ## Architecture
662
725
 
663
726
  ```
@@ -14,6 +14,8 @@ export declare class EventsManager {
14
14
  constructor(webhookManager: WebhookManager);
15
15
  /** Subscribe to job events */
16
16
  subscribe(callback: EventSubscriber): () => void;
17
+ /** Clear all subscribers (for shutdown) */
18
+ clear(): void;
17
19
  /** Broadcast event to all subscribers */
18
20
  broadcast(event: Partial<JobEvent> & {
19
21
  eventType: EventType;
@@ -1 +1 @@
1
- {"version":3,"file":"eventsManager.d.ts","sourceRoot":"","sources":["../../src/application/eventsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAExD,2BAA2B;AAC3B,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,cAAc;IAF3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;gBAExB,cAAc,EAAE,cAAc;IAE3D,8BAA8B;IAC9B,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAQhD,yCAAyC;IACzC,SAAS,CACP,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QACzB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,IAAI;IAsBP,+CAA+C;IAC/C,OAAO,CAAC,iBAAiB;CAc1B"}
1
+ {"version":3,"file":"eventsManager.d.ts","sourceRoot":"","sources":["../../src/application/eventsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAExD,2BAA2B;AAC3B,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,cAAc;IAF3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;gBAExB,cAAc,EAAE,cAAc;IAE3D,8BAA8B;IAC9B,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAQhD,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAIb,yCAAyC;IACzC,SAAS,CACP,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QACzB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,IAAI;IA6BP,+CAA+C;IAC/C,OAAO,CAAC,iBAAiB;CAc1B"}
@@ -2,6 +2,7 @@
2
2
  * Events Manager
3
3
  * Job event subscription and broadcasting
4
4
  */
5
+ import { webhookLog } from '../shared/logger';
5
6
  /** Events manager class */
6
7
  export class EventsManager {
7
8
  webhookManager;
@@ -18,6 +19,10 @@ export class EventsManager {
18
19
  this.subscribers.splice(idx, 1);
19
20
  };
20
21
  }
22
+ /** Clear all subscribers (for shutdown) */
23
+ clear() {
24
+ this.subscribers.length = 0;
25
+ }
21
26
  /** Broadcast event to all subscribers */
22
27
  broadcast(event) {
23
28
  // Notify subscribers
@@ -37,7 +42,14 @@ export class EventsManager {
37
42
  data: event.data,
38
43
  error: event.error,
39
44
  })
40
- .catch(() => { });
45
+ .catch((err) => {
46
+ webhookLog.error('Webhook trigger failed', {
47
+ event: webhookEvent,
48
+ jobId: String(event.jobId),
49
+ queue: event.queue,
50
+ error: String(err),
51
+ });
52
+ });
41
53
  }
42
54
  }
43
55
  /** Map internal event type to webhook event */
@@ -1 +1 @@
1
- {"version":3,"file":"eventsManager.js","sourceRoot":"","sources":["../../src/application/eventsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,2BAA2B;AAC3B,MAAM,OAAO,aAAa;IAGK;IAFZ,WAAW,GAAsB,EAAE,CAAC;IAErD,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,8BAA8B;IAC9B,SAAS,CAAC,QAAyB;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,SAAS,CACP,KAMC;QAED,qBAAqB;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,GAAG,CAAC,KAAiB,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc;iBAChB,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE;gBACvD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,+CAA+C;IACvC,iBAAiB,CAAC,SAAoB;QAC5C,QAAQ,SAAS,EAAE,CAAC;YAClB;gBACE,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,aAAa,CAAC;YACvB;gBACE,OAAO,eAAe,CAAC;YACzB;gBACE,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"eventsManager.js","sourceRoot":"","sources":["../../src/application/eventsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,2BAA2B;AAC3B,MAAM,OAAO,aAAa;IAGK;IAFZ,WAAW,GAAsB,EAAE,CAAC;IAErD,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,8BAA8B;IAC9B,SAAS,CAAC,QAAyB;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAyC;IACzC,SAAS,CACP,KAMC;QAED,qBAAqB;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,GAAG,CAAC,KAAiB,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc;iBAChB,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE;gBACvD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,UAAU,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACzC,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,+CAA+C;IACvC,iBAAiB,CAAC,SAAoB;QAC5C,QAAQ,SAAS,EAAE,CAAC;YAClB;gBACE,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,aAAa,CAAC;YACvB;gBACE,OAAO,eAAe,CAAC;YACzB;gBACE,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
@@ -5,10 +5,11 @@
5
5
  import type { JobId } from '../domain/types/job';
6
6
  import { type JobLogEntry } from '../domain/types/worker';
7
7
  import type { JobLocation } from '../domain/types/queue';
8
+ import type { MapLike } from '../shared/lru';
8
9
  /** Context for job logs operations */
9
10
  export interface JobLogsContext {
10
11
  jobIndex: Map<JobId, JobLocation>;
11
- jobLogs: Map<JobId, JobLogEntry[]>;
12
+ jobLogs: MapLike<JobId, JobLogEntry[]>;
12
13
  maxLogsPerJob: number;
13
14
  }
14
15
  /** Add log entry to a job */
@@ -1 +1 @@
1
- {"version":3,"file":"jobLogsManager.d.ts","sourceRoot":"","sources":["../../src/application/jobLogsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,6BAA6B;AAC7B,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,EACnB,KAAK,GAAE,MAAM,GAAG,MAAM,GAAG,OAAgB,GACxC,OAAO,CAcT;AAED,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,GAAG,WAAW,EAAE,CAE3E;AAED,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAEpE"}
1
+ {"version":3,"file":"jobLogsManager.d.ts","sourceRoot":"","sources":["../../src/application/jobLogsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,6BAA6B;AAC7B,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,EACnB,KAAK,GAAE,MAAM,GAAG,MAAM,GAAG,OAAgB,GACxC,OAAO,CAcT;AAED,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,GAAG,WAAW,EAAE,CAE3E;AAED,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"jobLogsManager.js","sourceRoot":"","sources":["../../src/application/jobLogsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAoB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAU1E,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CACvB,KAAY,EACZ,OAAe,EACf,GAAmB,EACnB,QAAmC,MAAM;IAEzC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,eAAe;IACf,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,GAAmB;IAC1D,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,GAAmB;IAC5D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"jobLogsManager.js","sourceRoot":"","sources":["../../src/application/jobLogsManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAoB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAW1E,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CACvB,KAAY,EACZ,OAAe,EACf,GAAmB,EACnB,QAAmC,MAAM;IAEzC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,eAAe;IACf,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,GAAmB;IAC1D,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,GAAmB;IAC5D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -7,6 +7,7 @@ import type { JobLocation, EventType } from '../../domain/types/queue';
7
7
  import type { Shard } from '../../domain/queue/shard';
8
8
  import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
9
9
  import { RWLock } from '../../shared/lock';
10
+ import type { SetLike, MapLike } from '../../shared/lru';
10
11
  /** Ack operation context */
11
12
  export interface AckContext {
12
13
  storage: SqliteStorage | null;
@@ -14,8 +15,8 @@ export interface AckContext {
14
15
  shardLocks: RWLock[];
15
16
  processingShards: Map<JobId, Job>[];
16
17
  processingLocks: RWLock[];
17
- completedJobs: Set<JobId>;
18
- jobResults: Map<JobId, unknown>;
18
+ completedJobs: SetLike<JobId>;
19
+ jobResults: MapLike<JobId, unknown>;
19
20
  jobIndex: Map<JobId, JobLocation>;
20
21
  totalCompleted: {
21
22
  value: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"ack.d.ts","sourceRoot":"","sources":["../../../src/application/operations/ack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAA8B,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAG1D,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE;QACjB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;IACX,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD1F;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
1
+ {"version":3,"file":"ack.d.ts","sourceRoot":"","sources":["../../../src/application/operations/ack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAA8B,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE;QACjB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;IACX,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD1F;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ack.js","sourceRoot":"","sources":["../../../src/application/operations/ack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ack.js","sourceRoot":"","sources":["../../../src/application/operations/ack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAwB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAI1F,OAAO,EAAU,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AA0BrE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAY,EAAE,MAAe,EAAE,GAAe;IACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE5C,yBAAyB;IACzB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,oBAAoB;IACpB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;QAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAClC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1B,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/C,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;IACjB,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,GAAG,CAAC,SAAS,CAAC;QACZ,SAAS,EAAE,WAAwB;QACnC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,uDAAuD;IACvD,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAY,EACZ,KAAyB,EACzB,GAAe;IAEf,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE5C,yBAAyB;IACzB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,qBAAqB;IACrB,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEf,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,iCAAiC;YACjC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,cAAc;YACd,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;YAC5C,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,GAAG,CAAC,SAAS,CAAC;QACZ,SAAS,EAAE,QAAqB;QAChC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAe,EAAE,GAAe;IAChE,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -7,11 +7,14 @@ import type { JobLocation } from '../../domain/types/queue';
7
7
  import type { Shard } from '../../domain/queue/shard';
8
8
  import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
9
9
  import type { WebhookManager } from '../webhookManager';
10
+ import { type RWLock } from '../../shared/lock';
10
11
  /** Context for job management operations */
11
12
  export interface JobManagementContext {
12
13
  storage: SqliteStorage | null;
13
14
  shards: Shard[];
15
+ shardLocks: RWLock[];
14
16
  processingShards: Map<JobId, Job>[];
17
+ processingLocks: RWLock[];
15
18
  jobIndex: Map<JobId, JobLocation>;
16
19
  webhookManager: WebhookManager;
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jobManagement.d.ts","sourceRoot":"","sources":["../../../src/application/operations/jobManagement.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,uCAAuC;AACvC,wBAAsB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAezF;AAED,0BAA0B;AAC1B,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,oBAAoB,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,sBAAsB;AACtB,wBAAsB,aAAa,CACjC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED,0BAA0B;AAC1B,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAU1F;AAED,sCAAsC;AACtC,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,yBAAyB;AACzB,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAoB1F"}
1
+ {"version":3,"file":"jobManagement.d.ts","sourceRoot":"","sources":["../../../src/application/operations/jobManagement.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAE/D,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,uCAAuC;AACvC,wBAAsB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBzF;AAED,0BAA0B;AAC1B,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,oBAAoB,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAED,sBAAsB;AACtB,wBAAsB,aAAa,CACjC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED,0BAA0B;AAC1B,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAY1F;AAED,sCAAsC;AACtC,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,OAAO,CAAC,CA4BlB;AAED,yBAAyB;AACzB,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B1F"}
@@ -2,22 +2,27 @@
2
2
  * Job Management Operations
3
3
  * Cancel, update progress, change priority, promote, move to delayed, discard
4
4
  */
5
- import { shardIndex } from '../../shared/hash';
5
+ import { shardIndex, processingShardIndex } from '../../shared/hash';
6
+ import { webhookLog } from '../../shared/logger';
7
+ import { withWriteLock } from '../../shared/lock';
6
8
  /** Cancel a job (remove from queue) */
7
9
  export async function cancelJob(jobId, ctx) {
8
10
  const location = ctx.jobIndex.get(jobId);
9
11
  if (!location)
10
12
  return false;
11
13
  if (location.type === 'queue') {
12
- const shard = ctx.shards[location.shardIdx];
13
- const job = shard.getQueue(location.queueName).remove(jobId);
14
- if (job) {
15
- if (job.uniqueKey)
16
- shard.releaseUniqueKey(location.queueName, job.uniqueKey);
17
- ctx.jobIndex.delete(jobId);
18
- ctx.storage?.deleteJob(jobId);
19
- return true;
20
- }
14
+ return withWriteLock(ctx.shardLocks[location.shardIdx], () => {
15
+ const shard = ctx.shards[location.shardIdx];
16
+ const job = shard.getQueue(location.queueName).remove(jobId);
17
+ if (job) {
18
+ if (job.uniqueKey)
19
+ shard.releaseUniqueKey(location.queueName, job.uniqueKey);
20
+ ctx.jobIndex.delete(jobId);
21
+ ctx.storage?.deleteJob(jobId);
22
+ return true;
23
+ }
24
+ return false;
25
+ });
21
26
  }
22
27
  return false;
23
28
  }
@@ -26,18 +31,25 @@ export async function updateJobProgress(jobId, progress, ctx, message) {
26
31
  const location = ctx.jobIndex.get(jobId);
27
32
  if (location?.type !== 'processing')
28
33
  return false;
29
- const job = ctx.processingShards[location.shardIdx].get(jobId);
30
- if (!job)
31
- return false;
32
- job.progress = Math.max(0, Math.min(100, progress));
33
- if (message !== undefined)
34
- job.progressMessage = message;
35
- ctx.webhookManager
36
- .trigger('job.progress', String(jobId), job.queue, { progress: job.progress })
37
- .catch(() => {
38
- // Ignore webhook errors
34
+ const procIdx = processingShardIndex(jobId);
35
+ return withWriteLock(ctx.processingLocks[procIdx], () => {
36
+ const job = ctx.processingShards[procIdx].get(jobId);
37
+ if (!job)
38
+ return false;
39
+ job.progress = Math.max(0, Math.min(100, progress));
40
+ if (message !== undefined)
41
+ job.progressMessage = message;
42
+ ctx.webhookManager
43
+ .trigger('job.progress', String(jobId), job.queue, { progress: job.progress })
44
+ .catch((err) => {
45
+ webhookLog.error('Progress webhook failed', {
46
+ jobId: String(jobId),
47
+ queue: job.queue,
48
+ error: String(err),
49
+ });
50
+ });
51
+ return true;
39
52
  });
40
- return true;
41
53
  }
42
54
  /** Update job data */
43
55
  export async function updateJobData(jobId, data, ctx) {
@@ -45,18 +57,25 @@ export async function updateJobData(jobId, data, ctx) {
45
57
  if (!location)
46
58
  return false;
47
59
  if (location.type === 'queue') {
48
- const job = ctx.shards[location.shardIdx].getQueue(location.queueName).find(jobId);
49
- if (job) {
50
- job.data = data;
51
- return true;
52
- }
60
+ return withWriteLock(ctx.shardLocks[location.shardIdx], () => {
61
+ const job = ctx.shards[location.shardIdx].getQueue(location.queueName).find(jobId);
62
+ if (job) {
63
+ job.data = data;
64
+ return true;
65
+ }
66
+ return false;
67
+ });
53
68
  }
54
69
  else if (location.type === 'processing') {
55
- const job = ctx.processingShards[location.shardIdx].get(jobId);
56
- if (job) {
57
- job.data = data;
58
- return true;
59
- }
70
+ const procIdx = processingShardIndex(jobId);
71
+ return withWriteLock(ctx.processingLocks[procIdx], () => {
72
+ const job = ctx.processingShards[procIdx].get(jobId);
73
+ if (job) {
74
+ job.data = data;
75
+ return true;
76
+ }
77
+ return false;
78
+ });
60
79
  }
61
80
  return false;
62
81
  }
@@ -65,36 +84,49 @@ export async function changeJobPriority(jobId, priority, ctx) {
65
84
  const location = ctx.jobIndex.get(jobId);
66
85
  if (location?.type !== 'queue')
67
86
  return false;
68
- const q = ctx.shards[location.shardIdx].getQueue(location.queueName);
69
- return q.updatePriority(jobId, priority);
87
+ return withWriteLock(ctx.shardLocks[location.shardIdx], () => {
88
+ const q = ctx.shards[location.shardIdx].getQueue(location.queueName);
89
+ return q.updatePriority(jobId, priority);
90
+ });
70
91
  }
71
92
  /** Promote delayed job to waiting */
72
93
  export async function promoteJob(jobId, ctx) {
73
94
  const location = ctx.jobIndex.get(jobId);
74
95
  if (location?.type !== 'queue')
75
96
  return false;
76
- const q = ctx.shards[location.shardIdx].getQueue(location.queueName);
77
- const job = q.find(jobId);
78
- if (!job || job.runAt <= Date.now())
79
- return false;
80
- job.runAt = Date.now();
81
- return true;
97
+ return withWriteLock(ctx.shardLocks[location.shardIdx], () => {
98
+ const q = ctx.shards[location.shardIdx].getQueue(location.queueName);
99
+ const job = q.find(jobId);
100
+ if (!job || job.runAt <= Date.now())
101
+ return false;
102
+ job.runAt = Date.now();
103
+ return true;
104
+ });
82
105
  }
83
106
  /** Move active job back to delayed */
84
107
  export async function moveJobToDelayed(jobId, delay, ctx) {
85
108
  const location = ctx.jobIndex.get(jobId);
86
109
  if (location?.type !== 'processing')
87
110
  return false;
88
- const procShard = ctx.processingShards[location.shardIdx];
89
- const job = procShard.get(jobId);
111
+ const procIdx = processingShardIndex(jobId);
112
+ // First remove from processing with lock
113
+ const job = await withWriteLock(ctx.processingLocks[procIdx], () => {
114
+ const job = ctx.processingShards[procIdx].get(jobId);
115
+ if (job) {
116
+ ctx.processingShards[procIdx].delete(jobId);
117
+ }
118
+ return job;
119
+ });
90
120
  if (!job)
91
121
  return false;
92
- procShard.delete(jobId);
122
+ // Then add back to queue with lock
93
123
  job.runAt = Date.now() + delay;
94
124
  job.startedAt = null;
95
125
  const idx = shardIndex(job.queue);
96
- ctx.shards[idx].getQueue(job.queue).push(job);
97
- ctx.jobIndex.set(jobId, { type: 'queue', shardIdx: idx, queueName: job.queue });
126
+ await withWriteLock(ctx.shardLocks[idx], () => {
127
+ ctx.shards[idx].getQueue(job.queue).push(job);
128
+ ctx.jobIndex.set(jobId, { type: 'queue', shardIdx: idx, queueName: job.queue });
129
+ });
98
130
  return true;
99
131
  }
100
132
  /** Discard job to DLQ */
@@ -104,17 +136,25 @@ export async function discardJob(jobId, ctx) {
104
136
  return false;
105
137
  let job = null;
106
138
  if (location.type === 'queue') {
107
- job = ctx.shards[location.shardIdx].getQueue(location.queueName).remove(jobId);
139
+ job = await withWriteLock(ctx.shardLocks[location.shardIdx], () => {
140
+ return ctx.shards[location.shardIdx].getQueue(location.queueName).remove(jobId);
141
+ });
108
142
  }
109
143
  else if (location.type === 'processing') {
110
- job = ctx.processingShards[location.shardIdx].get(jobId) ?? null;
111
- if (job)
112
- ctx.processingShards[location.shardIdx].delete(jobId);
144
+ const procIdx = processingShardIndex(jobId);
145
+ job = await withWriteLock(ctx.processingLocks[procIdx], () => {
146
+ const j = ctx.processingShards[procIdx].get(jobId) ?? null;
147
+ if (j)
148
+ ctx.processingShards[procIdx].delete(jobId);
149
+ return j;
150
+ });
113
151
  }
114
152
  if (job) {
115
153
  const idx = shardIndex(job.queue);
116
- ctx.shards[idx].addToDlq(job);
117
- ctx.jobIndex.set(jobId, { type: 'dlq', queueName: job.queue });
154
+ await withWriteLock(ctx.shardLocks[idx], () => {
155
+ ctx.shards[idx].addToDlq(job);
156
+ ctx.jobIndex.set(jobId, { type: 'dlq', queueName: job.queue });
157
+ });
118
158
  return true;
119
159
  }
120
160
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"jobManagement.js","sourceRoot":"","sources":["../../../src/application/operations/jobManagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobManagement.js","sourceRoot":"","sources":["../../../src/application/operations/jobManagement.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,14 @@ import type { JobLocation, EventType } from '../../domain/types/queue';
7
7
  import type { Shard } from '../../domain/queue/shard';
8
8
  import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
9
9
  import { RWLock } from '../../shared/lock';
10
+ import type { SetLike, MapLike } from '../../shared/lru';
10
11
  /** Push operation context */
11
12
  export interface PushContext {
12
13
  storage: SqliteStorage | null;
13
14
  shards: Shard[];
14
15
  shardLocks: RWLock[];
15
- completedJobs: Set<JobId>;
16
- customIdMap: Map<string, JobId>;
16
+ completedJobs: SetLike<JobId>;
17
+ customIdMap: MapLike<string, JobId>;
17
18
  jobIndex: Map<JobId, JobLocation>;
18
19
  totalPushed: {
19
20
  value: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/application/operations/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAoB,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAG1D,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE;QACjB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAgE5F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,QAAQ,EAAE,EAClB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,KAAK,EAAE,CAAC,CAiClB"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/application/operations/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAoB,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE;QACjB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAgE5F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,QAAQ,EAAE,EAClB,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,KAAK,EAAE,CAAC,CAiClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/application/operations/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/application/operations/push.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { JobLocation } from '../../domain/types/queue';
7
7
  import type { Shard } from '../../domain/queue/shard';
8
8
  import type { SqliteStorage } from '../../infrastructure/persistence/sqlite';
9
9
  import { type RWLock } from '../../shared/lock';
10
+ import type { SetLike, MapLike } from '../../shared/lru';
10
11
  /** Context for query operations */
11
12
  export interface QueryContext {
12
13
  storage: SqliteStorage | null;
@@ -15,9 +16,9 @@ export interface QueryContext {
15
16
  processingShards: Map<JobId, Job>[];
16
17
  processingLocks: RWLock[];
17
18
  jobIndex: Map<JobId, JobLocation>;
18
- completedJobs: Set<JobId>;
19
- jobResults: Map<JobId, unknown>;
20
- customIdMap: Map<string, JobId>;
19
+ completedJobs: SetLike<JobId>;
20
+ jobResults: MapLike<JobId, unknown>;
21
+ customIdMap: MapLike<string, JobId>;
21
22
  }
22
23
  /** Get job by ID */
23
24
  export declare function getJob(jobId: JobId, ctx: QueryContext): Promise<Job | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"queryOperations.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queryOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAE9D,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACjC;AAED,oBAAoB;AACpB,wBAAsB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAmBjF;AAED,qBAAqB;AACrB,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAErE;AAED,2BAA2B;AAC3B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,GAAG,GAAG,IAAI,CAchF;AAED,uBAAuB;AACvB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,YAAY,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAQrD"}
1
+ {"version":3,"file":"queryOperations.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queryOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACrC;AAED,oBAAoB;AACpB,wBAAsB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAmBjF;AAED,qBAAqB;AACrB,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAErE;AAED,2BAA2B;AAC3B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,GAAG,GAAG,IAAI,CAchF;AAED,uBAAuB;AACvB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,YAAY,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAQrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryOperations.js","sourceRoot":"","sources":["../../../src/application/operations/queryOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryOperations.js","sourceRoot":"","sources":["../../../src/application/operations/queryOperations.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,12 @@ export interface QueueManagerConfig {
13
13
  dataPath?: string;
14
14
  maxCompletedJobs?: number;
15
15
  maxJobResults?: number;
16
+ maxJobLogs?: number;
17
+ maxCustomIds?: number;
18
+ maxWaitingDeps?: number;
16
19
  cleanupIntervalMs?: number;
17
20
  jobTimeoutCheckMs?: number;
21
+ dependencyCheckMs?: number;
18
22
  }
19
23
  /**
20
24
  * QueueManager - Central coordinator
@@ -27,14 +31,16 @@ export declare class QueueManager {
27
31
  private readonly processingShards;
28
32
  private readonly processingLocks;
29
33
  private readonly jobIndex;
30
- private readonly completedJobs;
31
- private readonly jobResults;
32
- private readonly customIdMap;
34
+ private completedJobs;
35
+ private jobResults;
36
+ private customIdMap;
37
+ private jobLogs;
38
+ private readonly pendingDepChecks;
39
+ private depCheckInterval;
33
40
  private readonly cronScheduler;
34
41
  readonly webhookManager: WebhookManager;
35
42
  readonly workerManager: WorkerManager;
36
43
  private readonly eventsManager;
37
- private readonly jobLogs;
38
44
  private readonly maxLogsPerJob;
39
45
  private readonly metrics;
40
46
  private readonly startTime;
@@ -89,7 +95,16 @@ export declare class QueueManager {
89
95
  getCron(name: string): CronJob | undefined;
90
96
  listCrons(): CronJob[];
91
97
  subscribe(callback: (event: JobEvent) => void): () => void;
98
+ /**
99
+ * Called when a job is completed - schedules deferred dependency check
100
+ * This avoids lock order violations by not iterating shards while holding locks
101
+ */
92
102
  private onJobCompleted;
103
+ /**
104
+ * Process pending dependency checks in a separate task
105
+ * This runs periodically to check if waiting jobs can now proceed
106
+ */
107
+ private processPendingDependencies;
93
108
  private startBackgroundTasks;
94
109
  private checkJobTimeouts;
95
110
  private recover;