bunqueue 1.9.1 → 1.9.3
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.
- package/dist/application/operations/queueControl.d.ts.map +1 -1
- package/dist/application/operations/queueControl.js +6 -1
- package/dist/application/operations/queueControl.js.map +1 -1
- package/dist/application/queueManager.d.ts +115 -9
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +535 -26
- package/dist/application/queueManager.js.map +1 -1
- package/dist/cli/client.d.ts +6 -0
- package/dist/cli/client.d.ts.map +1 -1
- package/dist/cli/client.js +60 -48
- package/dist/cli/client.js.map +1 -1
- package/dist/cli/commands/server.d.ts.map +1 -1
- package/dist/cli/commands/server.js +30 -14
- package/dist/cli/commands/server.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +10 -6
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +15 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/client/queue/dlqOps.d.ts +24 -0
- package/dist/client/queue/dlqOps.d.ts.map +1 -0
- package/dist/client/queue/dlqOps.js +73 -0
- package/dist/client/queue/dlqOps.js.map +1 -0
- package/dist/client/queue/helpers.d.ts +20 -0
- package/dist/client/queue/helpers.d.ts.map +1 -0
- package/dist/client/queue/helpers.js +34 -0
- package/dist/client/queue/helpers.js.map +1 -0
- package/dist/client/queue/index.d.ts +8 -0
- package/dist/client/queue/index.d.ts.map +1 -0
- package/dist/client/queue/index.js +8 -0
- package/dist/client/queue/index.js.map +1 -0
- package/dist/client/queue/queue.d.ts +60 -0
- package/dist/client/queue/queue.d.ts.map +1 -0
- package/dist/client/queue/queue.js +322 -0
- package/dist/client/queue/queue.js.map +1 -0
- package/dist/client/queue.d.ts +3 -78
- package/dist/client/queue.d.ts.map +1 -1
- package/dist/client/queue.js +3 -463
- package/dist/client/queue.js.map +1 -1
- package/dist/client/sandboxed/index.d.ts +8 -0
- package/dist/client/sandboxed/index.d.ts.map +1 -0
- package/dist/client/sandboxed/index.js +7 -0
- package/dist/client/sandboxed/index.js.map +1 -0
- package/dist/client/sandboxed/types.d.ts +62 -0
- package/dist/client/sandboxed/types.d.ts.map +1 -0
- package/dist/client/sandboxed/types.js +6 -0
- package/dist/client/sandboxed/types.js.map +1 -0
- package/dist/client/sandboxed/worker.d.ts +38 -0
- package/dist/client/sandboxed/worker.d.ts.map +1 -0
- package/dist/client/sandboxed/worker.js +176 -0
- package/dist/client/sandboxed/worker.js.map +1 -0
- package/dist/client/sandboxed/wrapper.d.ts +13 -0
- package/dist/client/sandboxed/wrapper.d.ts.map +1 -0
- package/dist/client/sandboxed/wrapper.js +65 -0
- package/dist/client/sandboxed/wrapper.js.map +1 -0
- package/dist/client/sandboxedWorker.d.ts +4 -87
- package/dist/client/sandboxedWorker.d.ts.map +1 -1
- package/dist/client/sandboxedWorker.js +3 -296
- package/dist/client/sandboxedWorker.js.map +1 -1
- package/dist/client/tcp/client.d.ts +40 -0
- package/dist/client/tcp/client.d.ts.map +1 -0
- package/dist/client/tcp/client.js +289 -0
- package/dist/client/tcp/client.js.map +1 -0
- package/dist/client/tcp/connection.d.ts +57 -0
- package/dist/client/tcp/connection.d.ts.map +1 -0
- package/dist/client/tcp/connection.js +162 -0
- package/dist/client/tcp/connection.js.map +1 -0
- package/dist/client/tcp/health.d.ts +47 -0
- package/dist/client/tcp/health.d.ts.map +1 -0
- package/dist/client/tcp/health.js +95 -0
- package/dist/client/tcp/health.js.map +1 -0
- package/dist/client/tcp/index.d.ts +13 -0
- package/dist/client/tcp/index.d.ts.map +1 -0
- package/dist/client/tcp/index.js +12 -0
- package/dist/client/tcp/index.js.map +1 -0
- package/dist/client/tcp/lineBuffer.d.ts +17 -0
- package/dist/client/tcp/lineBuffer.d.ts.map +1 -0
- package/dist/client/tcp/lineBuffer.js +32 -0
- package/dist/client/tcp/lineBuffer.js.map +1 -0
- package/dist/client/tcp/reconnect.d.ts +38 -0
- package/dist/client/tcp/reconnect.d.ts.map +1 -0
- package/dist/client/tcp/reconnect.js +70 -0
- package/dist/client/tcp/reconnect.js.map +1 -0
- package/dist/client/tcp/shared.d.ts +11 -0
- package/dist/client/tcp/shared.d.ts.map +1 -0
- package/dist/client/tcp/shared.js +20 -0
- package/dist/client/tcp/shared.js.map +1 -0
- package/dist/client/tcp/types.d.ts +76 -0
- package/dist/client/tcp/types.d.ts.map +1 -0
- package/dist/client/tcp/types.js +20 -0
- package/dist/client/tcp/types.js.map +1 -0
- package/dist/client/tcpClient.d.ts +4 -110
- package/dist/client/tcpClient.d.ts.map +1 -1
- package/dist/client/tcpClient.js +3 -523
- package/dist/client/tcpClient.js.map +1 -1
- package/dist/client/tcpPool.d.ts +3 -0
- package/dist/client/tcpPool.d.ts.map +1 -1
- package/dist/client/tcpPool.js +21 -2
- package/dist/client/tcpPool.js.map +1 -1
- package/dist/client/types.d.ts +11 -2
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js.map +1 -1
- package/dist/client/worker/ackBatcher.d.ts +40 -0
- package/dist/client/worker/ackBatcher.d.ts.map +1 -0
- package/dist/client/worker/ackBatcher.js +137 -0
- package/dist/client/worker/ackBatcher.js.map +1 -0
- package/dist/client/worker/index.d.ts +11 -0
- package/dist/client/worker/index.d.ts.map +1 -0
- package/dist/client/worker/index.js +10 -0
- package/dist/client/worker/index.js.map +1 -0
- package/dist/client/worker/jobParser.d.ts +10 -0
- package/dist/client/worker/jobParser.d.ts.map +1 -0
- package/dist/client/worker/jobParser.js +43 -0
- package/dist/client/worker/jobParser.js.map +1 -0
- package/dist/client/worker/processor.d.ts +24 -0
- package/dist/client/worker/processor.d.ts.map +1 -0
- package/dist/client/worker/processor.js +86 -0
- package/dist/client/worker/processor.js.map +1 -0
- package/dist/client/worker/types.d.ts +38 -0
- package/dist/client/worker/types.d.ts.map +1 -0
- package/dist/client/worker/types.js +14 -0
- package/dist/client/worker/types.js.map +1 -0
- package/dist/client/worker/worker.d.ts +53 -0
- package/dist/client/worker/worker.d.ts.map +1 -0
- package/dist/client/worker/worker.js +367 -0
- package/dist/client/worker/worker.js.map +1 -0
- package/dist/client/worker.d.ts +3 -69
- package/dist/client/worker.d.ts.map +1 -1
- package/dist/client/worker.js +3 -472
- package/dist/client/worker.js.map +1 -1
- package/dist/domain/queue/shard.d.ts +19 -2
- package/dist/domain/queue/shard.d.ts.map +1 -1
- package/dist/domain/queue/shard.js +36 -4
- package/dist/domain/queue/shard.js.map +1 -1
- package/dist/domain/types/command.d.ts +9 -0
- package/dist/domain/types/command.d.ts.map +1 -1
- package/dist/domain/types/job.d.ts +27 -0
- package/dist/domain/types/job.d.ts.map +1 -1
- package/dist/domain/types/job.js +34 -0
- package/dist/domain/types/job.js.map +1 -1
- package/dist/domain/types/response.d.ts +15 -1
- package/dist/domain/types/response.d.ts.map +1 -1
- package/dist/domain/types/response.js +16 -0
- package/dist/domain/types/response.js.map +1 -1
- package/dist/infrastructure/server/handlers/core.d.ts +1 -1
- package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/core.js +74 -15
- package/dist/infrastructure/server/handlers/core.js.map +1 -1
- package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/monitoring.js +6 -4
- package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
- package/dist/infrastructure/server/http.d.ts +10 -3
- package/dist/infrastructure/server/http.d.ts.map +1 -1
- package/dist/infrastructure/server/http.js +244 -163
- package/dist/infrastructure/server/http.js.map +1 -1
- package/dist/infrastructure/server/tcp.d.ts +8 -3
- package/dist/infrastructure/server/tcp.d.ts.map +1 -1
- package/dist/infrastructure/server/tcp.js +77 -57
- package/dist/infrastructure/server/tcp.js.map +1 -1
- package/dist/infrastructure/server/types.d.ts +2 -0
- package/dist/infrastructure/server/types.d.ts.map +1 -1
- package/dist/main.js +24 -4
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcpPool.js","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAiD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tcpPool.js","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"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"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -42,10 +42,12 @@ export interface JobOptions {
|
|
|
42
42
|
}
|
|
43
43
|
/** Connection options for TCP mode */
|
|
44
44
|
export interface ConnectionOptions {
|
|
45
|
-
/** Server host (default: localhost) */
|
|
45
|
+
/** Server host (default: localhost, ignored if socketPath is set) */
|
|
46
46
|
host?: string;
|
|
47
|
-
/** Server port (default: 6789) */
|
|
47
|
+
/** Server port (default: 6789, ignored if socketPath is set) */
|
|
48
48
|
port?: number;
|
|
49
|
+
/** Unix socket path (takes priority over host/port) */
|
|
50
|
+
socketPath?: string;
|
|
49
51
|
/** Auth token */
|
|
50
52
|
token?: string;
|
|
51
53
|
/** Connection pool size for parallel operations (default: 1, set >1 to enable pooling) */
|
|
@@ -73,6 +75,13 @@ export interface WorkerOptions {
|
|
|
73
75
|
batchSize?: number;
|
|
74
76
|
/** Long poll timeout in ms when queue is empty (default: 0 = no wait, max: 30000) */
|
|
75
77
|
pollTimeout?: number;
|
|
78
|
+
/**
|
|
79
|
+
* Use lock-based job ownership (BullMQ-style).
|
|
80
|
+
* When enabled, each pulled job gets a lock that must be renewed via heartbeat.
|
|
81
|
+
* Disable for high-throughput scenarios where stall detection is sufficient.
|
|
82
|
+
* Default: true
|
|
83
|
+
*/
|
|
84
|
+
useLocks?: boolean;
|
|
76
85
|
}
|
|
77
86
|
/** Stall configuration for a queue */
|
|
78
87
|
export interface StallConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qCAAqC;AACrC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,OAAO;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,+BAA+B;IAC/B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,MAAM,CAAC,EAAE;QACP,kCAAkC;QAClC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
package/dist/client/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoLH,6EAA6E;AAC7E,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAkC,CAAC;QACxE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAC7B,GAAgB,EAChB,IAAY,EACZ,cAAiF,EACjF,GAAmD;IAEnD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAM;QACpC,SAAS,EAAE,GAAG,CAAC,KAAK;QACpB,YAAY,EAAE,GAAG,CAAC,QAAQ;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,cAAc,EAAE,CAAC,QAAgB,EAAE,OAAgB,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC7F,GAAG,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAI,GAAgB,EAAE,IAAY;IAC3D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAM;QACpC,SAAS,EAAE,GAAG,CAAC,KAAK;QACpB,YAAY,EAAE,GAAG,CAAC,QAAQ;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC9B,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACpB,CAAC;AACJ,CAAC;AAID,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAI,KAAuB;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAgC,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,WAAW,CAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC;QAC1D,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAuB;QACrC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAuB;YACjC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;QACH,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACK Batcher
|
|
3
|
+
* Batches acknowledgments for efficient TCP communication
|
|
4
|
+
*/
|
|
5
|
+
import type { TcpConnection } from './types';
|
|
6
|
+
/** ACK batcher configuration */
|
|
7
|
+
export interface AckBatcherConfig {
|
|
8
|
+
batchSize: number;
|
|
9
|
+
interval: number;
|
|
10
|
+
embedded: boolean;
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
retryDelayMs?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Batches ACK operations for efficient processing
|
|
16
|
+
*/
|
|
17
|
+
export declare class AckBatcher {
|
|
18
|
+
private readonly pendingAcks;
|
|
19
|
+
private ackTimer;
|
|
20
|
+
private readonly config;
|
|
21
|
+
private tcp;
|
|
22
|
+
private stopped;
|
|
23
|
+
private readonly inFlightFlushes;
|
|
24
|
+
constructor(config: AckBatcherConfig);
|
|
25
|
+
/** Set TCP connection */
|
|
26
|
+
setTcp(tcp: TcpConnection | null): void;
|
|
27
|
+
/** Queue ACK for batch processing (with optional lock token) */
|
|
28
|
+
queue(id: string, result: unknown, token?: string): void;
|
|
29
|
+
/** Flush pending ACKs with retry logic */
|
|
30
|
+
flush(): Promise<void>;
|
|
31
|
+
/** Send batch with exponential backoff retry */
|
|
32
|
+
private sendBatchWithRetry;
|
|
33
|
+
/** Stop and cleanup - clears pending acks without processing */
|
|
34
|
+
stop(): void;
|
|
35
|
+
/** Check if there are pending acks */
|
|
36
|
+
hasPending(): boolean;
|
|
37
|
+
/** Wait for all in-flight flush operations to complete */
|
|
38
|
+
waitForInFlight(): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ackBatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ackBatcher.d.ts","sourceRoot":"","sources":["../../../src/client/worker/ackBatcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAIzD,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;gBAErD,MAAM,EAAE,gBAAgB;IAIpC,yBAAyB;IACzB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIvC,gEAAgE;IAChE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBxD,0CAA0C;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,gDAAgD;YAClC,kBAAkB;IA8DhC,gEAAgE;IAChE,IAAI,IAAI,IAAI;IAUZ,sCAAsC;IACtC,UAAU,IAAI,OAAO;IAIrB,0DAA0D;IACpD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAIvC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACK Batcher
|
|
3
|
+
* Batches acknowledgments for efficient TCP communication
|
|
4
|
+
*/
|
|
5
|
+
import { getSharedManager } from '../manager';
|
|
6
|
+
import { jobId } from '../../domain/types/job';
|
|
7
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
8
|
+
const DEFAULT_RETRY_DELAY_MS = 100;
|
|
9
|
+
/**
|
|
10
|
+
* Batches ACK operations for efficient processing
|
|
11
|
+
*/
|
|
12
|
+
export class AckBatcher {
|
|
13
|
+
pendingAcks = [];
|
|
14
|
+
ackTimer = null;
|
|
15
|
+
config;
|
|
16
|
+
tcp = null;
|
|
17
|
+
stopped = false;
|
|
18
|
+
// Track in-flight flush operations to ensure all complete before close
|
|
19
|
+
inFlightFlushes = new Set();
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
}
|
|
23
|
+
/** Set TCP connection */
|
|
24
|
+
setTcp(tcp) {
|
|
25
|
+
this.tcp = tcp;
|
|
26
|
+
}
|
|
27
|
+
/** Queue ACK for batch processing (with optional lock token) */
|
|
28
|
+
queue(id, result, token) {
|
|
29
|
+
this.pendingAcks.push({
|
|
30
|
+
id,
|
|
31
|
+
result,
|
|
32
|
+
token,
|
|
33
|
+
resolve: () => { },
|
|
34
|
+
reject: () => { },
|
|
35
|
+
});
|
|
36
|
+
if (this.pendingAcks.length >= this.config.batchSize) {
|
|
37
|
+
// Track in-flight flush
|
|
38
|
+
const flushPromise = this.flush();
|
|
39
|
+
this.inFlightFlushes.add(flushPromise);
|
|
40
|
+
void flushPromise.finally(() => this.inFlightFlushes.delete(flushPromise));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.ackTimer ??= setTimeout(() => {
|
|
44
|
+
this.ackTimer = null;
|
|
45
|
+
const flushPromise = this.flush();
|
|
46
|
+
this.inFlightFlushes.add(flushPromise);
|
|
47
|
+
void flushPromise.finally(() => this.inFlightFlushes.delete(flushPromise));
|
|
48
|
+
}, this.config.interval);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Flush pending ACKs with retry logic */
|
|
52
|
+
async flush() {
|
|
53
|
+
if (this.pendingAcks.length === 0)
|
|
54
|
+
return;
|
|
55
|
+
const batch = this.pendingAcks.splice(0, this.pendingAcks.length);
|
|
56
|
+
if (this.ackTimer) {
|
|
57
|
+
clearTimeout(this.ackTimer);
|
|
58
|
+
this.ackTimer = null;
|
|
59
|
+
}
|
|
60
|
+
await this.sendBatchWithRetry(batch);
|
|
61
|
+
}
|
|
62
|
+
/** Send batch with exponential backoff retry */
|
|
63
|
+
async sendBatchWithRetry(batch) {
|
|
64
|
+
const maxRetries = this.config.maxRetries ?? DEFAULT_MAX_RETRIES;
|
|
65
|
+
const baseDelay = this.config.retryDelayMs ?? DEFAULT_RETRY_DELAY_MS;
|
|
66
|
+
let lastError = null;
|
|
67
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
68
|
+
if (this.stopped) {
|
|
69
|
+
// If stopped, don't retry - just fail remaining
|
|
70
|
+
const error = new Error('AckBatcher stopped');
|
|
71
|
+
for (const ack of batch) {
|
|
72
|
+
ack.reject(error);
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
if (this.config.embedded) {
|
|
78
|
+
const manager = getSharedManager();
|
|
79
|
+
// Include tokens for lock verification
|
|
80
|
+
const items = batch.map((a) => ({ id: jobId(a.id), result: a.result, token: a.token }));
|
|
81
|
+
await manager.ackBatchWithResults(items);
|
|
82
|
+
}
|
|
83
|
+
else if (this.tcp) {
|
|
84
|
+
// Include tokens for lock verification
|
|
85
|
+
const response = await this.tcp.send({
|
|
86
|
+
cmd: 'ACKB',
|
|
87
|
+
ids: batch.map((a) => a.id),
|
|
88
|
+
results: batch.map((a) => a.result),
|
|
89
|
+
tokens: batch.map((a) => a.token ?? ''),
|
|
90
|
+
});
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
throw new Error(response.error ?? 'Batch ACK failed');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Success
|
|
96
|
+
for (const ack of batch) {
|
|
97
|
+
ack.resolve();
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
lastError = err instanceof Error ? err : new Error(String(err));
|
|
103
|
+
if (attempt < maxRetries) {
|
|
104
|
+
// Exponential backoff: 100ms, 200ms, 400ms
|
|
105
|
+
const delay = baseDelay * Math.pow(2, attempt);
|
|
106
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// All retries exhausted
|
|
111
|
+
console.error(`[AckBatcher] Flush failed after ${maxRetries + 1} attempts:`, lastError?.message, `(${batch.length} acks lost)`);
|
|
112
|
+
for (const ack of batch) {
|
|
113
|
+
ack.reject(lastError ?? new Error('Unknown error'));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Stop and cleanup - clears pending acks without processing */
|
|
117
|
+
stop() {
|
|
118
|
+
this.stopped = true;
|
|
119
|
+
if (this.ackTimer) {
|
|
120
|
+
clearTimeout(this.ackTimer);
|
|
121
|
+
this.ackTimer = null;
|
|
122
|
+
}
|
|
123
|
+
// Clear any pending acks (they should have been flushed before stop)
|
|
124
|
+
this.pendingAcks.length = 0;
|
|
125
|
+
}
|
|
126
|
+
/** Check if there are pending acks */
|
|
127
|
+
hasPending() {
|
|
128
|
+
return this.pendingAcks.length > 0;
|
|
129
|
+
}
|
|
130
|
+
/** Wait for all in-flight flush operations to complete */
|
|
131
|
+
async waitForInFlight() {
|
|
132
|
+
if (this.inFlightFlushes.size === 0)
|
|
133
|
+
return;
|
|
134
|
+
await Promise.all(this.inFlightFlushes);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=ackBatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ackBatcher.js","sourceRoot":"","sources":["../../../src/client/worker/ackBatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Module
|
|
3
|
+
* Re-exports all worker components
|
|
4
|
+
*/
|
|
5
|
+
export type { PendingAck, ExtendedWorkerOptions, TcpConnection } from './types';
|
|
6
|
+
export { FORCE_EMBEDDED, WORKER_CONSTANTS } from './types';
|
|
7
|
+
export { AckBatcher, type AckBatcherConfig } from './ackBatcher';
|
|
8
|
+
export { parseJobFromResponse } from './jobParser';
|
|
9
|
+
export { processJob, type ProcessorConfig } from './processor';
|
|
10
|
+
export { Worker } from './worker';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/worker/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Module
|
|
3
|
+
* Re-exports all worker components
|
|
4
|
+
*/
|
|
5
|
+
export { FORCE_EMBEDDED, WORKER_CONSTANTS } from './types';
|
|
6
|
+
export { AckBatcher } from './ackBatcher';
|
|
7
|
+
export { parseJobFromResponse } from './jobParser';
|
|
8
|
+
export { processJob } from './processor';
|
|
9
|
+
export { Worker } from './worker';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/worker/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job Parser
|
|
3
|
+
* Parses job data from TCP responses
|
|
4
|
+
*/
|
|
5
|
+
import type { Job as InternalJob } from '../../domain/types/job';
|
|
6
|
+
/**
|
|
7
|
+
* Parse job from TCP response data
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseJobFromResponse(jobData: Record<string, unknown>, queueName: string): InternalJob;
|
|
10
|
+
//# sourceMappingURL=jobParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobParser.d.ts","sourceRoot":"","sources":["../../../src/client/worker/jobParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGjE;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,WAAW,CAiCb"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job Parser
|
|
3
|
+
* Parses job data from TCP responses
|
|
4
|
+
*/
|
|
5
|
+
import { jobId } from '../../domain/types/job';
|
|
6
|
+
/**
|
|
7
|
+
* Parse job from TCP response data
|
|
8
|
+
*/
|
|
9
|
+
export function parseJobFromResponse(jobData, queueName) {
|
|
10
|
+
return {
|
|
11
|
+
id: jobId(jobData.id),
|
|
12
|
+
queue: queueName,
|
|
13
|
+
data: jobData.data,
|
|
14
|
+
priority: jobData.priority ?? 0,
|
|
15
|
+
createdAt: jobData.createdAt ?? Date.now(),
|
|
16
|
+
runAt: jobData.runAt ?? Date.now(),
|
|
17
|
+
startedAt: Date.now(),
|
|
18
|
+
completedAt: null,
|
|
19
|
+
attempts: jobData.attempts ?? 0,
|
|
20
|
+
maxAttempts: jobData.maxAttempts ?? 3,
|
|
21
|
+
backoff: jobData.backoff ?? 1000,
|
|
22
|
+
ttl: jobData.ttl ?? null,
|
|
23
|
+
timeout: jobData.timeout ?? null,
|
|
24
|
+
uniqueKey: jobData.uniqueKey ?? null,
|
|
25
|
+
customId: jobData.customId ?? null,
|
|
26
|
+
progress: jobData.progress ?? 0,
|
|
27
|
+
progressMessage: jobData.progressMessage ?? null,
|
|
28
|
+
dependsOn: [],
|
|
29
|
+
parentId: null,
|
|
30
|
+
childrenIds: [],
|
|
31
|
+
childrenCompleted: 0,
|
|
32
|
+
tags: [],
|
|
33
|
+
groupId: null,
|
|
34
|
+
lifo: false,
|
|
35
|
+
removeOnComplete: jobData.removeOnComplete ?? false,
|
|
36
|
+
removeOnFail: false,
|
|
37
|
+
stallCount: 0,
|
|
38
|
+
stallTimeout: null,
|
|
39
|
+
lastHeartbeat: Date.now(),
|
|
40
|
+
repeat: null,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=jobParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobParser.js","sourceRoot":"","sources":["../../../src/client/worker/jobParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgC,EAChC,SAAiB;IAEjB,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAY,CAAC;QAC/B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAG,OAAO,CAAC,QAA+B,IAAI,CAAC;QACvD,SAAS,EAAG,OAAO,CAAC,SAAgC,IAAI,IAAI,CAAC,GAAG,EAAE;QAClE,KAAK,EAAG,OAAO,CAAC,KAA4B,IAAI,IAAI,CAAC,GAAG,EAAE;QAC1D,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAG,OAAO,CAAC,QAA+B,IAAI,CAAC;QACvD,WAAW,EAAG,OAAO,CAAC,WAAkC,IAAI,CAAC;QAC7D,OAAO,EAAG,OAAO,CAAC,OAA8B,IAAI,IAAI;QACxD,GAAG,EAAG,OAAO,CAAC,GAA0B,IAAI,IAAI;QAChD,OAAO,EAAG,OAAO,CAAC,OAA8B,IAAI,IAAI;QACxD,SAAS,EAAG,OAAO,CAAC,SAAgC,IAAI,IAAI;QAC5D,QAAQ,EAAG,OAAO,CAAC,QAA+B,IAAI,IAAI;QAC1D,QAAQ,EAAG,OAAO,CAAC,QAA+B,IAAI,CAAC;QACvD,eAAe,EAAG,OAAO,CAAC,eAAsC,IAAI,IAAI;QACxE,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE;QACf,iBAAiB,EAAE,CAAC;QACpB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAG,OAAO,CAAC,gBAAwC,IAAI,KAAK;QAC5E,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;QACzB,MAAM,EAAE,IAAI;KACE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job Processor
|
|
3
|
+
* Handles job execution and result reporting
|
|
4
|
+
*/
|
|
5
|
+
import type { EventEmitter } from 'events';
|
|
6
|
+
import type { TcpConnection } from './types';
|
|
7
|
+
import type { Processor } from '../types';
|
|
8
|
+
import type { Job as InternalJob } from '../../domain/types/job';
|
|
9
|
+
import type { AckBatcher } from './ackBatcher';
|
|
10
|
+
/** Processor configuration */
|
|
11
|
+
export interface ProcessorConfig<T, R> {
|
|
12
|
+
name: string;
|
|
13
|
+
processor: Processor<T, R>;
|
|
14
|
+
embedded: boolean;
|
|
15
|
+
tcp: TcpConnection | null;
|
|
16
|
+
ackBatcher: AckBatcher;
|
|
17
|
+
emitter: EventEmitter;
|
|
18
|
+
token?: string | null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Process a single job
|
|
22
|
+
*/
|
|
23
|
+
export declare function processJob<T, R>(internalJob: InternalJob, config: ProcessorConfig<T, R>): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=processor.d.ts.map
|
|
@@ -0,0 +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,EAAO,MAAM,UAAU,CAAC;AAE/C,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,CAgCf"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job Processor
|
|
3
|
+
* Handles job execution and result reporting
|
|
4
|
+
*/
|
|
5
|
+
import { createPublicJob } from '../types';
|
|
6
|
+
import { jobId } from '../../domain/types/job';
|
|
7
|
+
import { getSharedManager } from '../manager';
|
|
8
|
+
/**
|
|
9
|
+
* Process a single job
|
|
10
|
+
*/
|
|
11
|
+
export async function processJob(internalJob, config) {
|
|
12
|
+
const { processor, embedded, tcp, ackBatcher, emitter, token } = config;
|
|
13
|
+
const jobData = internalJob.data;
|
|
14
|
+
const jobName = jobData?.name ?? 'default';
|
|
15
|
+
const jobIdStr = String(internalJob.id);
|
|
16
|
+
const job = createPublicJob(internalJob, jobName, createProgressHandler(embedded, tcp, emitter), createLogHandler(embedded, tcp));
|
|
17
|
+
emitter.emit('active', job);
|
|
18
|
+
try {
|
|
19
|
+
const result = await processor(job);
|
|
20
|
+
if (embedded) {
|
|
21
|
+
const manager = getSharedManager();
|
|
22
|
+
// Pass token for lock verification
|
|
23
|
+
await manager.ack(internalJob.id, result, token ?? undefined);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Queue with token for batch ACK
|
|
27
|
+
ackBatcher.queue(jobIdStr, result, token ?? undefined);
|
|
28
|
+
}
|
|
29
|
+
job.returnvalue = result;
|
|
30
|
+
emitter.emit('completed', job, result);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
await handleJobFailure(internalJob, error, config, { job, jobIdStr, token });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function createProgressHandler(embedded, tcp, emitter) {
|
|
37
|
+
return async (id, progress, message) => {
|
|
38
|
+
if (embedded) {
|
|
39
|
+
const manager = getSharedManager();
|
|
40
|
+
await manager.updateProgress(jobId(id), progress, message);
|
|
41
|
+
}
|
|
42
|
+
else if (tcp) {
|
|
43
|
+
await tcp.send({ cmd: 'Progress', id, progress, message });
|
|
44
|
+
}
|
|
45
|
+
emitter.emit('progress', null, progress);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function createLogHandler(embedded, tcp) {
|
|
49
|
+
return async (id, message) => {
|
|
50
|
+
if (embedded) {
|
|
51
|
+
const manager = getSharedManager();
|
|
52
|
+
manager.addLog(jobId(id), message);
|
|
53
|
+
}
|
|
54
|
+
else if (tcp) {
|
|
55
|
+
await tcp.send({ cmd: 'AddLog', id, message });
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async function handleJobFailure(internalJob, error, config, context) {
|
|
60
|
+
const { embedded, tcp, emitter } = config;
|
|
61
|
+
const { job, jobIdStr, token } = context;
|
|
62
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
63
|
+
try {
|
|
64
|
+
if (embedded) {
|
|
65
|
+
const manager = getSharedManager();
|
|
66
|
+
// Pass token for lock verification
|
|
67
|
+
await manager.fail(internalJob.id, err.message, token ?? undefined);
|
|
68
|
+
}
|
|
69
|
+
else if (tcp) {
|
|
70
|
+
// Include token for lock verification
|
|
71
|
+
await tcp.send({
|
|
72
|
+
cmd: 'FAIL',
|
|
73
|
+
id: internalJob.id,
|
|
74
|
+
error: err.message,
|
|
75
|
+
token: token ?? undefined,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (failError) {
|
|
80
|
+
const wrappedError = failError instanceof Error ? failError : new Error(String(failError));
|
|
81
|
+
emitter.emit('error', Object.assign(wrappedError, { context: 'fail', jobId: jobIdStr }));
|
|
82
|
+
}
|
|
83
|
+
job.failedReason = err.message;
|
|
84
|
+
emitter.emit('failed', job, err);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/client/worker/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Types
|
|
3
|
+
* Type definitions for worker module
|
|
4
|
+
*/
|
|
5
|
+
import type { ConnectionOptions } from '../types';
|
|
6
|
+
/** Pending ACK item with result and optional lock token */
|
|
7
|
+
export interface PendingAck {
|
|
8
|
+
id: string;
|
|
9
|
+
result: unknown;
|
|
10
|
+
token?: string;
|
|
11
|
+
resolve: () => void;
|
|
12
|
+
reject: (err: Error) => void;
|
|
13
|
+
}
|
|
14
|
+
/** Extended options with all defaults */
|
|
15
|
+
export interface ExtendedWorkerOptions {
|
|
16
|
+
concurrency: number;
|
|
17
|
+
autorun: boolean;
|
|
18
|
+
heartbeatInterval: number;
|
|
19
|
+
batchSize: number;
|
|
20
|
+
pollTimeout: number;
|
|
21
|
+
embedded: boolean;
|
|
22
|
+
useLocks: boolean;
|
|
23
|
+
connection?: ConnectionOptions;
|
|
24
|
+
}
|
|
25
|
+
/** TCP connection interface */
|
|
26
|
+
export interface TcpConnection {
|
|
27
|
+
send: (cmd: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
28
|
+
}
|
|
29
|
+
/** Check if embedded mode should be forced (for tests) */
|
|
30
|
+
export declare const FORCE_EMBEDDED: boolean;
|
|
31
|
+
/** Worker constants */
|
|
32
|
+
export declare const WORKER_CONSTANTS: {
|
|
33
|
+
readonly MAX_BACKOFF_MS: 30000;
|
|
34
|
+
readonly BASE_BACKOFF_MS: 100;
|
|
35
|
+
readonly MAX_POLL_TIMEOUT: 30000;
|
|
36
|
+
readonly DEFAULT_ACK_INTERVAL: 50;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/worker/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC9B;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1E;AAED,0DAA0D;AAC1D,eAAO,MAAM,cAAc,SAAwC,CAAC;AAEpE,uBAAuB;AACvB,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Types
|
|
3
|
+
* Type definitions for worker module
|
|
4
|
+
*/
|
|
5
|
+
/** Check if embedded mode should be forced (for tests) */
|
|
6
|
+
export const FORCE_EMBEDDED = process.env.BUNQUEUE_EMBEDDED === '1';
|
|
7
|
+
/** Worker constants */
|
|
8
|
+
export const WORKER_CONSTANTS = {
|
|
9
|
+
MAX_BACKOFF_MS: 30_000,
|
|
10
|
+
BASE_BACKOFF_MS: 100,
|
|
11
|
+
MAX_POLL_TIMEOUT: 30_000,
|
|
12
|
+
DEFAULT_ACK_INTERVAL: 50,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/worker/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAEpE,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,MAAM;IACxB,oBAAoB,EAAE,EAAE;CAChB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker
|
|
3
|
+
* BullMQ-style worker for job processing
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import type { WorkerOptions, Processor } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Worker class for processing jobs
|
|
9
|
+
*/
|
|
10
|
+
export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
private readonly opts;
|
|
13
|
+
private readonly processor;
|
|
14
|
+
private readonly embedded;
|
|
15
|
+
private readonly tcp;
|
|
16
|
+
private readonly tcpPool;
|
|
17
|
+
private readonly ackBatcher;
|
|
18
|
+
private running;
|
|
19
|
+
private closing;
|
|
20
|
+
private activeJobs;
|
|
21
|
+
private pollTimer;
|
|
22
|
+
private consecutiveErrors;
|
|
23
|
+
private readonly activeJobIds;
|
|
24
|
+
private readonly pulledJobIds;
|
|
25
|
+
private readonly jobTokens;
|
|
26
|
+
private heartbeatTimer;
|
|
27
|
+
private readonly workerId;
|
|
28
|
+
private pendingJobs;
|
|
29
|
+
private pendingJobsHead;
|
|
30
|
+
private processingScheduled;
|
|
31
|
+
constructor(name: string, processor: Processor<T, R>, opts?: WorkerOptions);
|
|
32
|
+
/** Start processing */
|
|
33
|
+
run(): void;
|
|
34
|
+
/** Pause processing */
|
|
35
|
+
pause(): void;
|
|
36
|
+
/** Resume processing */
|
|
37
|
+
resume(): void;
|
|
38
|
+
/** Close worker gracefully */
|
|
39
|
+
close(force?: boolean): Promise<void>;
|
|
40
|
+
private startHeartbeat;
|
|
41
|
+
private sendHeartbeat;
|
|
42
|
+
private poll;
|
|
43
|
+
private tryProcess;
|
|
44
|
+
/** Register pulled jobs for heartbeat tracking */
|
|
45
|
+
private registerPulledJobs;
|
|
46
|
+
private getBufferedJob;
|
|
47
|
+
private pullBatch;
|
|
48
|
+
private pullEmbedded;
|
|
49
|
+
private pullTcp;
|
|
50
|
+
private startJob;
|
|
51
|
+
private handlePullError;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/worker/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AAQ5E;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,YAAY;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,iBAAiB,CAAK;IAI9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,cAAc,CAA+C;IAGrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAGlC,OAAO,CAAC,WAAW,CAAyD;IAC5E,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,GAAE,aAAkB;IA+C9E,uBAAuB;IACvB,GAAG,IAAI,IAAI;IAYX,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAQb,wBAAwB;IACxB,MAAM,IAAI,IAAI;IAId,8BAA8B;IACxB,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCzC,OAAO,CAAC,cAAc;YAIR,aAAa;IAiC3B,OAAO,CAAC,IAAI;YAYE,UAAU;IAqCxB,kDAAkD;IAClD,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;YAWR,SAAS;YAQT,YAAY;YAwBZ,OAAO;IA2CrB,OAAO,CAAC,QAAQ;IA2ChB,OAAO,CAAC,eAAe;CAoBxB"}
|