bunqueue 2.6.10 → 2.6.13

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 (54) hide show
  1. package/dist/application/queueManager.d.ts +6 -0
  2. package/dist/application/queueManager.d.ts.map +1 -1
  3. package/dist/application/queueManager.js +13 -0
  4. package/dist/application/queueManager.js.map +1 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +2 -10
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/client/queue/dlq.d.ts +3 -1
  9. package/dist/client/queue/dlq.d.ts.map +1 -1
  10. package/dist/client/queue/dlq.js +20 -7
  11. package/dist/client/queue/dlq.js.map +1 -1
  12. package/dist/client/queue/queue.d.ts +2 -0
  13. package/dist/client/queue/queue.d.ts.map +1 -1
  14. package/dist/client/queue/queue.js +10 -2
  15. package/dist/client/queue/queue.js.map +1 -1
  16. package/dist/client/queue/stall.d.ts +5 -1
  17. package/dist/client/queue/stall.d.ts.map +1 -1
  18. package/dist/client/queue/stall.js +23 -7
  19. package/dist/client/queue/stall.js.map +1 -1
  20. package/dist/client/resolveToken.d.ts +11 -0
  21. package/dist/client/resolveToken.d.ts.map +1 -0
  22. package/dist/client/resolveToken.js +21 -0
  23. package/dist/client/resolveToken.js.map +1 -0
  24. package/dist/client/sandboxed/types.d.ts +4 -0
  25. package/dist/client/sandboxed/types.d.ts.map +1 -1
  26. package/dist/client/sandboxed/worker.d.ts +4 -0
  27. package/dist/client/sandboxed/worker.d.ts.map +1 -1
  28. package/dist/client/sandboxed/worker.js +68 -11
  29. package/dist/client/sandboxed/worker.js.map +1 -1
  30. package/dist/client/worker/groupConcurrency.d.ts +48 -0
  31. package/dist/client/worker/groupConcurrency.d.ts.map +1 -0
  32. package/dist/client/worker/groupConcurrency.js +92 -0
  33. package/dist/client/worker/groupConcurrency.js.map +1 -0
  34. package/dist/client/worker/processor.d.ts.map +1 -1
  35. package/dist/client/worker/processor.js +14 -0
  36. package/dist/client/worker/processor.js.map +1 -1
  37. package/dist/client/worker/worker.d.ts +7 -0
  38. package/dist/client/worker/worker.d.ts.map +1 -1
  39. package/dist/client/worker/worker.js +63 -7
  40. package/dist/client/worker/worker.js.map +1 -1
  41. package/dist/domain/types/command.d.ts +19 -1
  42. package/dist/domain/types/command.d.ts.map +1 -1
  43. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  44. package/dist/infrastructure/server/handler.js +4 -1
  45. package/dist/infrastructure/server/handler.js.map +1 -1
  46. package/dist/infrastructure/server/handlerRoutes.d.ts +2 -0
  47. package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -1
  48. package/dist/infrastructure/server/handlerRoutes.js +17 -1
  49. package/dist/infrastructure/server/handlerRoutes.js.map +1 -1
  50. package/dist/infrastructure/server/handlers/advanced.d.ts +16 -0
  51. package/dist/infrastructure/server/handlers/advanced.d.ts.map +1 -1
  52. package/dist/infrastructure/server/handlers/advanced.js +21 -0
  53. package/dist/infrastructure/server/handlers/advanced.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolve auth token with priority:
3
+ * 1. explicitToken (from connection.token) - highest
4
+ * 2. Bun.env.BQ_TOKEN
5
+ * 3. Bun.env.BUNQUEUE_TOKEN
6
+ * 4. undefined if none set
7
+ *
8
+ * Empty strings are treated as not set.
9
+ */
10
+ export declare function resolveToken(explicitToken: string | undefined): string | undefined;
11
+ //# sourceMappingURL=resolveToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveToken.d.ts","sourceRoot":"","sources":["../../src/client/resolveToken.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUlF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Resolve auth token with priority:
3
+ * 1. explicitToken (from connection.token) - highest
4
+ * 2. Bun.env.BQ_TOKEN
5
+ * 3. Bun.env.BUNQUEUE_TOKEN
6
+ * 4. undefined if none set
7
+ *
8
+ * Empty strings are treated as not set.
9
+ */
10
+ export function resolveToken(explicitToken) {
11
+ if (explicitToken)
12
+ return explicitToken;
13
+ const bqToken = Bun.env.BQ_TOKEN;
14
+ if (bqToken)
15
+ return bqToken;
16
+ const bunqueueToken = Bun.env.BUNQUEUE_TOKEN;
17
+ if (bunqueueToken)
18
+ return bunqueueToken;
19
+ return undefined;
20
+ }
21
+ //# sourceMappingURL=resolveToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveToken.js","sourceRoot":"","sources":["../../src/client/resolveToken.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,aAAiC;IAC5D,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -29,6 +29,8 @@ export interface SandboxedWorkerOptions {
29
29
  heartbeatInterval?: number;
30
30
  /** Auto-stop after this many ms of inactivity (0 = disabled, default: 0) */
31
31
  idleTimeout?: number;
32
+ /** Recycle individual idle worker processes after this many ms (default: 30000, 0 = disabled) */
33
+ idleRecycleMs?: number;
32
34
  }
33
35
  /** Required options with defaults applied */
34
36
  export interface RequiredSandboxedWorkerOptions {
@@ -48,6 +50,8 @@ export interface WorkerProcess {
48
50
  currentToken: string | null;
49
51
  restarts: number;
50
52
  timeoutId: Timer | null;
53
+ lastIdleAt: number;
54
+ terminated: boolean;
51
55
  }
52
56
  /** IPC message from main to worker */
53
57
  export interface IPCRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,6CAA6C;AAC7C,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -36,6 +36,7 @@ export declare class SandboxedWorker<T = unknown> extends EventEmitter {
36
36
  private heartbeatTimer;
37
37
  private readonly heartbeatInterval;
38
38
  private readonly idleTimeout;
39
+ private readonly idleRecycleMs;
39
40
  private lastActivityTime;
40
41
  constructor(queueName: string, options: SandboxedWorkerOptions);
41
42
  /** Start the sandboxed worker pool */
@@ -49,12 +50,15 @@ export declare class SandboxedWorker<T = unknown> extends EventEmitter {
49
50
  total: number;
50
51
  busy: number;
51
52
  idle: number;
53
+ recycled: number;
52
54
  restarts: number;
53
55
  };
54
56
  /** Reset worker state to idle */
55
57
  private resetWorkerState;
56
58
  private spawnWorker;
57
59
  private pullLoop;
60
+ /** Terminate individual idle workers that exceeded idleRecycleMs, keeping at least 1 alive */
61
+ private recycleIdleWorkers;
58
62
  private dispatch;
59
63
  private handleMessage;
60
64
  private complete;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,SAAS,CAAC;AA0BjB;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,YAAY;IAG5D,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IACzD,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAC1D,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAC9E,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACxE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAC9E,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACxE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAM1D,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAC3D,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAC5D,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAChF,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAC1E,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAChF,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAC1E,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAM5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IA4B9D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B,kCAAkC;IAC5B,IAAI,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BxC,+CAA+C;IAC/C,SAAS,IAAI,OAAO;IAIpB,4BAA4B;IAC5B,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAM3E,iCAAiC;IACjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,WAAW;YAkDL,QAAQ;IAkBtB,OAAO,CAAC,QAAQ;IA6ChB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IA+BnB,iDAAiD;IACjD,OAAO,CAAC,cAAc;IAKtB,yCAAyC;YAC3B,aAAa;IAgB3B,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAMrB,qEAAqE;IACrE,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,GAAG,EAAgB,MAAM,UAAU,CAAC;AAGlD,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,SAAS,CAAC;AA0BjB;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,YAAY;IAG5D,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IACzD,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAC1D,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAC9E,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACxE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAC9E,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACxE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAM1D,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAC3D,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAC5D,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAChF,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAC1E,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAChF,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAC1E,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAM5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IA6B9D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B,kCAAkC;IAC5B,IAAI,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BxC,+CAA+C;IAC/C,SAAS,IAAI,OAAO;IAIpB,4BAA4B;IAC5B,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAQ7F,iCAAiC;IACjC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,WAAW;YAoDL,QAAQ;IAmCtB,8FAA8F;IAC9F,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,QAAQ;IA6ChB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IA+BnB,iDAAiD;IACjD,OAAO,CAAC,cAAc;IAKtB,yCAAyC;YAC3B,aAAa;IAgB3B,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAMrB,qEAAqE;IACrE,OAAO,CAAC,cAAc;CAiBvB"}
@@ -6,6 +6,7 @@ import { EventEmitter } from 'events';
6
6
  import { getSharedManager } from '../manager';
7
7
  import { getSharedPool, releaseSharedPool } from '../tcpPool';
8
8
  import { createPublicJob } from '../jobConversion';
9
+ import { jobId } from '../../domain/types/job';
9
10
  import { createWrapperScript, cleanupWrapperScript } from './wrapper';
10
11
  import { createEmbeddedOps, createTcpOps } from './queueOps';
11
12
  const LOG_PREFIX = '[SandboxedWorker]';
@@ -49,6 +50,7 @@ export class SandboxedWorker extends EventEmitter {
49
50
  heartbeatTimer = null;
50
51
  heartbeatInterval;
51
52
  idleTimeout;
53
+ idleRecycleMs;
52
54
  lastActivityTime = 0;
53
55
  constructor(queueName, options) {
54
56
  super();
@@ -65,6 +67,7 @@ export class SandboxedWorker extends EventEmitter {
65
67
  this.heartbeatInterval = options.heartbeatInterval ?? 5000;
66
68
  }
67
69
  this.idleTimeout = options.idleTimeout ?? 0;
70
+ this.idleRecycleMs = options.idleRecycleMs ?? 30000;
68
71
  this.options = {
69
72
  processor: options.processor,
70
73
  concurrency: options.concurrency ?? 1,
@@ -102,7 +105,7 @@ export class SandboxedWorker extends EventEmitter {
102
105
  await this.pullPromise;
103
106
  // Unless force, wait for all busy workers to finish their current jobs
104
107
  if (!force) {
105
- while (this.workers.some((w) => w.busy)) {
108
+ while (this.workers.some((w) => w.busy && !w.terminated)) {
106
109
  await Bun.sleep(50);
107
110
  }
108
111
  }
@@ -114,7 +117,8 @@ export class SandboxedWorker extends EventEmitter {
114
117
  for (const wp of this.workers) {
115
118
  if (wp.timeoutId)
116
119
  clearTimeout(wp.timeoutId);
117
- wp.worker.terminate();
120
+ if (!wp.terminated)
121
+ wp.worker.terminate();
118
122
  }
119
123
  this.workers.length = 0;
120
124
  await cleanupWrapperScript(this.wrapperPath);
@@ -128,9 +132,11 @@ export class SandboxedWorker extends EventEmitter {
128
132
  }
129
133
  /** Get worker pool stats */
130
134
  getStats() {
131
- const busy = this.workers.filter((w) => w.busy).length;
135
+ const busy = this.workers.filter((w) => w.busy && !w.terminated).length;
136
+ const recycled = this.workers.filter((w) => w.terminated).length;
137
+ const alive = this.workers.length - recycled;
132
138
  const restarts = this.workers.reduce((sum, w) => sum + w.restarts, 0);
133
- return { total: this.workers.length, busy, idle: this.workers.length - busy, restarts };
139
+ return { total: this.workers.length, busy, idle: alive - busy, recycled, restarts };
134
140
  }
135
141
  /** Reset worker state to idle */
136
142
  resetWorkerState(wp) {
@@ -141,6 +147,7 @@ export class SandboxedWorker extends EventEmitter {
141
147
  wp.busy = false;
142
148
  wp.currentJob = null;
143
149
  wp.currentToken = null;
150
+ wp.lastIdleAt = Date.now();
144
151
  }
145
152
  spawnWorker(index) {
146
153
  return new Promise((resolve, reject) => {
@@ -156,6 +163,8 @@ export class SandboxedWorker extends EventEmitter {
156
163
  currentToken: null,
157
164
  restarts: this.workers[index]?.restarts ?? 0,
158
165
  timeoutId: null,
166
+ lastIdleAt: Date.now(),
167
+ terminated: false,
159
168
  };
160
169
  let resolved = false;
161
170
  const readyTimeout = setTimeout(() => {
@@ -190,18 +199,58 @@ export class SandboxedWorker extends EventEmitter {
190
199
  }
191
200
  async pullLoop() {
192
201
  while (this.running) {
193
- const idle = this.workers.find((w) => !w.busy);
202
+ // Find an alive idle worker, or respawn a recycled one
203
+ let idle = this.workers.find((w) => !w.busy && !w.terminated);
194
204
  if (!idle) {
195
- await Bun.sleep(this.options.pollInterval);
196
- continue;
205
+ const recycled = this.workers.find((w) => w.terminated);
206
+ if (recycled) {
207
+ const index = this.workers.indexOf(recycled);
208
+ await this.spawnWorker(index);
209
+ idle = this.workers[index];
210
+ }
211
+ else {
212
+ await Bun.sleep(this.options.pollInterval);
213
+ continue;
214
+ }
197
215
  }
198
216
  const { job, token } = await this.ops.pull(this.queueName, this.workerId, 1000);
199
217
  if (job) {
218
+ // If the idle worker was recycled between find and dispatch, respawn
219
+ if (idle.terminated) {
220
+ const index = this.workers.indexOf(idle);
221
+ await this.spawnWorker(index);
222
+ idle = this.workers[index];
223
+ }
200
224
  this.dispatch(idle, job, token);
201
225
  }
202
- else if (this.idleTimeout > 0 && Date.now() - this.lastActivityTime >= this.idleTimeout) {
203
- this.stop().catch(() => { });
204
- return;
226
+ else {
227
+ this.recycleIdleWorkers();
228
+ if (this.idleTimeout > 0 && Date.now() - this.lastActivityTime >= this.idleTimeout) {
229
+ this.stop().catch(() => { });
230
+ return;
231
+ }
232
+ }
233
+ }
234
+ }
235
+ /** Terminate individual idle workers that exceeded idleRecycleMs, keeping at least 1 alive */
236
+ recycleIdleWorkers() {
237
+ if (this.idleRecycleMs <= 0)
238
+ return;
239
+ const now = Date.now();
240
+ let aliveIdleCount = 0;
241
+ for (const wp of this.workers) {
242
+ if (!wp.busy && !wp.terminated)
243
+ aliveIdleCount++;
244
+ }
245
+ for (const wp of this.workers) {
246
+ if (wp.busy || wp.terminated)
247
+ continue;
248
+ if (aliveIdleCount <= 1)
249
+ break;
250
+ if (wp.lastIdleAt > 0 && now - wp.lastIdleAt >= this.idleRecycleMs) {
251
+ wp.worker.terminate();
252
+ wp.terminated = true;
253
+ aliveIdleCount--;
205
254
  }
206
255
  }
207
256
  }
@@ -354,7 +403,7 @@ export class SandboxedWorker extends EventEmitter {
354
403
  }
355
404
  /** Send heartbeat for all active jobs */
356
405
  async sendHeartbeat() {
357
- const active = this.workers.filter((w) => w.busy && w.currentJob);
406
+ const active = this.workers.filter((w) => w.busy && w.currentJob && !w.terminated);
358
407
  if (active.length === 0)
359
408
  return;
360
409
  try {
@@ -382,6 +431,14 @@ export class SandboxedWorker extends EventEmitter {
382
431
  name: data?.name ?? 'default',
383
432
  updateProgress: async () => { },
384
433
  log: async () => { },
434
+ getState: async (id) => {
435
+ if (this.tcp) {
436
+ const response = await this.tcp.send({ cmd: 'GetState', id });
437
+ return (response.state ?? 'unknown');
438
+ }
439
+ const manager = getSharedManager();
440
+ return (await manager.getJobState(jobId(id)));
441
+ },
385
442
  });
386
443
  }
387
444
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * GroupConcurrencyLimiter - Per-group concurrency limiting for workers
3
+ *
4
+ * When a worker has limiter.groupKey set, this tracks how many jobs
5
+ * are active per group and enforces the limiter.max cap per group.
6
+ */
7
+ import type { RateLimiterOptions } from '../types';
8
+ import type { Job as InternalJob } from '../../domain/types/job';
9
+ export declare class GroupConcurrencyLimiter {
10
+ private readonly groupKey;
11
+ private readonly maxPerGroup;
12
+ private readonly activeByGroup;
13
+ constructor(groupKey: string, max: number);
14
+ /**
15
+ * Create a GroupConcurrencyLimiter from limiter options, or null if
16
+ * groupKey is not configured.
17
+ */
18
+ static fromOptions(limiter: RateLimiterOptions | null | undefined): GroupConcurrencyLimiter | null;
19
+ /**
20
+ * Extract the group key value from a job's data.
21
+ * Returns null if the job data doesn't contain the group key field.
22
+ */
23
+ getGroupValue(job: InternalJob): string | null;
24
+ /**
25
+ * Check if a job's group has capacity for another active job.
26
+ * Jobs without a group value are always allowed (no group limit applies).
27
+ */
28
+ canProcess(job: InternalJob): boolean;
29
+ /**
30
+ * Increment the active count for a job's group.
31
+ * Call this when a job starts processing.
32
+ */
33
+ increment(job: InternalJob): void;
34
+ /**
35
+ * Decrement the active count for a job's group.
36
+ * Call this when a job finishes (completed or failed).
37
+ */
38
+ decrement(job: InternalJob): void;
39
+ /** Get the current active count for a specific group. */
40
+ getGroupCount(group: string): number;
41
+ /** Get max per group. */
42
+ getMax(): number;
43
+ /** Get the group key field name. */
44
+ getGroupKey(): string;
45
+ /** Clear all tracking state. */
46
+ clear(): void;
47
+ }
48
+ //# sourceMappingURL=groupConcurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupConcurrency.d.ts","sourceRoot":"","sources":["../../../src/client/worker/groupConcurrency.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE/C,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAKzC;;;OAGG;IACH,MAAM,CAAC,WAAW,CAChB,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAC7C,uBAAuB,GAAG,IAAI;IAKjC;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAQ9C;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAOrC;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAOjC;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAWjC,yDAAyD;IACzD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC,yBAAyB;IACzB,MAAM,IAAI,MAAM;IAIhB,oCAAoC;IACpC,WAAW,IAAI,MAAM;IAIrB,gCAAgC;IAChC,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * GroupConcurrencyLimiter - Per-group concurrency limiting for workers
3
+ *
4
+ * When a worker has limiter.groupKey set, this tracks how many jobs
5
+ * are active per group and enforces the limiter.max cap per group.
6
+ */
7
+ export class GroupConcurrencyLimiter {
8
+ groupKey;
9
+ maxPerGroup;
10
+ activeByGroup = new Map();
11
+ constructor(groupKey, max) {
12
+ this.groupKey = groupKey;
13
+ this.maxPerGroup = max;
14
+ }
15
+ /**
16
+ * Create a GroupConcurrencyLimiter from limiter options, or null if
17
+ * groupKey is not configured.
18
+ */
19
+ static fromOptions(limiter) {
20
+ if (!limiter?.groupKey)
21
+ return null;
22
+ return new GroupConcurrencyLimiter(limiter.groupKey, limiter.max);
23
+ }
24
+ /**
25
+ * Extract the group key value from a job's data.
26
+ * Returns null if the job data doesn't contain the group key field.
27
+ */
28
+ getGroupValue(job) {
29
+ const data = job.data;
30
+ if (!data || typeof data !== 'object')
31
+ return null;
32
+ const value = data[this.groupKey];
33
+ if (value === undefined || value === null)
34
+ return null;
35
+ return typeof value === 'string' ? value : `${value}`;
36
+ }
37
+ /**
38
+ * Check if a job's group has capacity for another active job.
39
+ * Jobs without a group value are always allowed (no group limit applies).
40
+ */
41
+ canProcess(job) {
42
+ const group = this.getGroupValue(job);
43
+ if (group === null)
44
+ return true;
45
+ const current = this.activeByGroup.get(group) ?? 0;
46
+ return current < this.maxPerGroup;
47
+ }
48
+ /**
49
+ * Increment the active count for a job's group.
50
+ * Call this when a job starts processing.
51
+ */
52
+ increment(job) {
53
+ const group = this.getGroupValue(job);
54
+ if (group === null)
55
+ return;
56
+ const current = this.activeByGroup.get(group) ?? 0;
57
+ this.activeByGroup.set(group, current + 1);
58
+ }
59
+ /**
60
+ * Decrement the active count for a job's group.
61
+ * Call this when a job finishes (completed or failed).
62
+ */
63
+ decrement(job) {
64
+ const group = this.getGroupValue(job);
65
+ if (group === null)
66
+ return;
67
+ const current = this.activeByGroup.get(group) ?? 0;
68
+ if (current <= 1) {
69
+ this.activeByGroup.delete(group);
70
+ }
71
+ else {
72
+ this.activeByGroup.set(group, current - 1);
73
+ }
74
+ }
75
+ /** Get the current active count for a specific group. */
76
+ getGroupCount(group) {
77
+ return this.activeByGroup.get(group) ?? 0;
78
+ }
79
+ /** Get max per group. */
80
+ getMax() {
81
+ return this.maxPerGroup;
82
+ }
83
+ /** Get the group key field name. */
84
+ getGroupKey() {
85
+ return this.groupKey;
86
+ }
87
+ /** Clear all tracking state. */
88
+ clear() {
89
+ this.activeByGroup.clear();
90
+ }
91
+ }
92
+ //# sourceMappingURL=groupConcurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupConcurrency.js","sourceRoot":"","sources":["../../../src/client/worker/groupConcurrency.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/client/worker/processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,8BAA8B;AAC9B,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkDf"}
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/client/worker/processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAkC,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,8BAA8B;AAC9B,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,CAAC,EACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmDf"}
@@ -19,6 +19,7 @@ export async function processJob(internalJob, config) {
19
19
  name: jobName,
20
20
  updateProgress: createProgressHandler(embedded, tcp, emitter, jobHolder),
21
21
  log: createLogHandler(embedded, tcp),
22
+ getState: createGetStateHandler(embedded, tcp),
22
23
  });
23
24
  jobHolder.current = job;
24
25
  emitter.emit('active', job);
@@ -77,6 +78,19 @@ function createLogHandler(embedded, tcp) {
77
78
  }
78
79
  };
79
80
  }
81
+ function createGetStateHandler(embedded, tcp) {
82
+ return async (id) => {
83
+ if (embedded) {
84
+ const manager = getSharedManager();
85
+ return (await manager.getJobState(jobId(id)));
86
+ }
87
+ else if (tcp) {
88
+ const response = await tcp.send({ cmd: 'GetState', id });
89
+ return (response.state ?? 'unknown');
90
+ }
91
+ return 'unknown';
92
+ };
93
+ }
80
94
  /** Check if error is a "job not found" error from stale ACK/FAIL (Issue #33) */
81
95
  function isJobNotFoundError(err) {
82
96
  return err.message.includes('not found') || err.message.includes('not in processing');
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/client/worker/processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/client/worker/processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc9C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,WAAwB,EACxB,MAA6B;IAE7B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAgC,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAIxC,MAAM,SAAS,GAAqC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEtE,MAAM,GAAG,GAAG,eAAe,CAAU;QACnC,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,OAAO;QACb,cAAc,EAAE,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC;QACxE,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC;QACpC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC;KAC/C,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC;IAExB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;gBACnC,mCAAmC;gBACnC,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,KAAK,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,8DAA8D;YAC9D,2DAA2D;YAC3D,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YACD,MAAM,MAAM,CAAC;QACf,CAAC;QAEA,GAAiC,CAAC,WAAW,GAAG,MAAM,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAiB,EACjB,GAAyB,EACzB,OAAqB,EACrB,SAAqC;IAErC,OAAO,KAAK,EAAE,EAAU,EAAE,QAAgB,EAAE,OAAgB,EAAE,EAAE;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAiB,EAAE,GAAyB;IACpE,OAAO,KAAK,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,+CAA+C;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiB,EAAE,GAAyB;IACzE,OAAO,KAAK,EAAE,EAAU,EAAyB,EAAE;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAC;QAChE,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACzD,OAAO,CAAE,QAA+B,CAAC,KAAK,IAAI,SAAS,CAAiB,CAAC;QAC/E,CAAC;QACD,OAAO,SAAyB,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAQD,gFAAgF;AAChF,SAAS,kBAAkB,CAAC,GAAU;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,WAAwB,EACxB,KAAc,EACd,MAA6B,EAC7B,OAAwC;IAExC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,mCAAmC;YACnC,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,wDAAwD;YACxD,MAAM,GAAG,CAAC,IAAI,CAAC;gBACb,GAAG,EAAE,MAAM;gBACX,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3F,kEAAkE;QAClE,uEAAuE;QACvE,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAEA,GAAiC,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC"}
@@ -17,6 +17,7 @@ export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
17
17
  private readonly tcpPool;
18
18
  private readonly ackBatcher;
19
19
  private readonly rateLimiter;
20
+ private readonly groupLimiter;
20
21
  private running;
21
22
  private paused;
22
23
  private closing;
@@ -92,6 +93,12 @@ export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
92
93
  private tryProcess;
93
94
  private registerPulledJobs;
94
95
  private getBufferedJob;
96
+ /**
97
+ * Get the next buffered job eligible for processing.
98
+ * When group concurrency is enabled, skips jobs whose group is at capacity
99
+ * and leaves them in the buffer for later processing.
100
+ */
101
+ private getNextEligibleJob;
95
102
  private doPullBatch;
96
103
  private startJob;
97
104
  private handlePullError;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/worker/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/worker/worker.ts"],"names":[],"mappings":"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"}