bunqueue 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/application/queueManager.d.ts +4 -0
  2. package/dist/application/queueManager.d.ts.map +1 -1
  3. package/dist/application/queueManager.js +22 -0
  4. package/dist/application/queueManager.js.map +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/index.js +1 -1
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/client/queue.d.ts +3 -3
  10. package/dist/client/queue.d.ts.map +1 -1
  11. package/dist/client/queue.js +40 -27
  12. package/dist/client/queue.js.map +1 -1
  13. package/dist/client/tcpClient.d.ts +12 -1
  14. package/dist/client/tcpClient.d.ts.map +1 -1
  15. package/dist/client/tcpClient.js +105 -31
  16. package/dist/client/tcpClient.js.map +1 -1
  17. package/dist/client/tcpPool.d.ts +13 -4
  18. package/dist/client/tcpPool.d.ts.map +1 -1
  19. package/dist/client/tcpPool.js +58 -13
  20. package/dist/client/tcpPool.js.map +1 -1
  21. package/dist/client/types.d.ts +3 -1
  22. package/dist/client/types.d.ts.map +1 -1
  23. package/dist/client/types.js.map +1 -1
  24. package/dist/client/worker.d.ts +21 -13
  25. package/dist/client/worker.d.ts.map +1 -1
  26. package/dist/client/worker.js +149 -88
  27. package/dist/client/worker.js.map +1 -1
  28. package/dist/domain/types/command.d.ts +16 -1
  29. package/dist/domain/types/command.d.ts.map +1 -1
  30. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  31. package/dist/infrastructure/server/handler.js +7 -1
  32. package/dist/infrastructure/server/handler.js.map +1 -1
  33. package/dist/infrastructure/server/handlers/core.d.ts +1 -1
  34. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  35. package/dist/infrastructure/server/handlers/core.js +12 -3
  36. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  37. package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -1
  38. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -1
  39. package/dist/infrastructure/server/handlers/monitoring.js +18 -0
  40. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
  41. package/package.json +1 -1
@@ -14,7 +14,31 @@ export const DEFAULT_CONNECTION = {
14
14
  connectTimeout: 5000,
15
15
  commandTimeout: 30000,
16
16
  autoReconnect: true,
17
+ pingInterval: 30000, // 30s health check
17
18
  };
19
+ /** Line buffer for efficient parsing */
20
+ class LineBuffer {
21
+ partial = '';
22
+ /** Add data and return complete lines */
23
+ addData(data) {
24
+ const combined = this.partial + data;
25
+ const lines = [];
26
+ let start = 0;
27
+ let idx;
28
+ while ((idx = combined.indexOf('\n', start)) !== -1) {
29
+ const line = combined.slice(start, idx);
30
+ if (line.length > 0) {
31
+ lines.push(line);
32
+ }
33
+ start = idx + 1;
34
+ }
35
+ this.partial = start < combined.length ? combined.slice(start) : '';
36
+ return lines;
37
+ }
38
+ clear() {
39
+ this.partial = '';
40
+ }
41
+ }
18
42
  /**
19
43
  * TCP Client - manages connection to bunqueue server
20
44
  * Production-ready with auto-reconnection and exponential backoff
@@ -26,9 +50,12 @@ export class TcpClient extends EventEmitter {
26
50
  closed = false;
27
51
  reconnectAttempts = 0;
28
52
  reconnectTimer = null;
53
+ pingTimer = null;
29
54
  options;
30
- pendingCommands = [];
55
+ pendingCommands = new Map();
56
+ pendingQueue = []; // FIFO queue of command IDs
31
57
  currentCommand = null;
58
+ commandIdCounter = 0;
32
59
  constructor(options = {}) {
33
60
  super();
34
61
  this.options = { ...DEFAULT_CONNECTION, ...options };
@@ -58,11 +85,14 @@ export class TcpClient extends EventEmitter {
58
85
  await this.doConnect();
59
86
  this.reconnectAttempts = 0;
60
87
  this.emit('connected');
88
+ // Start health check ping
89
+ this.startPing();
61
90
  // Process any pending commands
62
91
  this.processNextCommand();
63
92
  }
64
93
  catch (err) {
65
94
  this.connecting = false;
95
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- user can set to false
66
96
  if (this.options.autoReconnect && !this.closed) {
67
97
  this.scheduleReconnect();
68
98
  }
@@ -74,7 +104,7 @@ export class TcpClient extends EventEmitter {
74
104
  const socketData = {
75
105
  write: () => { },
76
106
  end: () => { },
77
- buffer: '',
107
+ lineBuffer: new LineBuffer(),
78
108
  };
79
109
  let connectionResolved = false;
80
110
  let timeoutId = null;
@@ -89,12 +119,9 @@ export class TcpClient extends EventEmitter {
89
119
  port: this.options.port,
90
120
  socket: {
91
121
  data: (_sock, data) => {
92
- socketData.buffer += data.toString();
93
- let newlineIdx;
94
- while ((newlineIdx = socketData.buffer.indexOf('\n')) !== -1) {
95
- const line = socketData.buffer.slice(0, newlineIdx);
96
- socketData.buffer = socketData.buffer.slice(newlineIdx + 1);
97
- if (line.trim() && this.currentCommand) {
122
+ const lines = socketData.lineBuffer.addData(data.toString());
123
+ for (const line of lines) {
124
+ if (this.currentCommand) {
98
125
  try {
99
126
  const response = JSON.parse(line);
100
127
  clearTimeout(this.currentCommand.timeout);
@@ -135,7 +162,7 @@ export class TcpClient extends EventEmitter {
135
162
  }
136
163
  catch (err) {
137
164
  connectionResolved = true;
138
- reject(err);
165
+ reject(err instanceof Error ? err : new Error(String(err)));
139
166
  return;
140
167
  }
141
168
  }
@@ -147,6 +174,7 @@ export class TcpClient extends EventEmitter {
147
174
  this.connected = false;
148
175
  this.connecting = false;
149
176
  this.socket = null;
177
+ this.stopPing();
150
178
  // Reject current command
151
179
  if (this.currentCommand) {
152
180
  clearTimeout(this.currentCommand.timeout);
@@ -191,6 +219,34 @@ export class TcpClient extends EventEmitter {
191
219
  }, this.options.connectTimeout);
192
220
  });
193
221
  }
222
+ /** Start periodic health check ping */
223
+ startPing() {
224
+ if (this.options.pingInterval <= 0)
225
+ return;
226
+ this.stopPing();
227
+ this.pingTimer = setInterval(() => {
228
+ void this.ping();
229
+ }, this.options.pingInterval);
230
+ }
231
+ /** Stop health check ping */
232
+ stopPing() {
233
+ if (this.pingTimer) {
234
+ clearInterval(this.pingTimer);
235
+ this.pingTimer = null;
236
+ }
237
+ }
238
+ /** Send ping to check connection health */
239
+ async ping() {
240
+ if (!this.connected)
241
+ return false;
242
+ try {
243
+ const response = await this.send({ cmd: 'Ping' });
244
+ return response.pong === true;
245
+ }
246
+ catch {
247
+ return false;
248
+ }
249
+ }
194
250
  /** Schedule reconnection with exponential backoff */
195
251
  scheduleReconnect() {
196
252
  if (this.reconnectTimer || this.closed)
@@ -199,11 +255,12 @@ export class TcpClient extends EventEmitter {
199
255
  if (this.reconnectAttempts > this.options.maxReconnectAttempts) {
200
256
  this.emit('maxReconnectAttemptsReached');
201
257
  // Reject all pending commands
202
- for (const cmd of this.pendingCommands) {
258
+ for (const cmd of this.pendingCommands.values()) {
203
259
  clearTimeout(cmd.timeout);
204
260
  cmd.reject(new Error('Max reconnection attempts reached'));
205
261
  }
206
- this.pendingCommands = [];
262
+ this.pendingCommands.clear();
263
+ this.pendingQueue = [];
207
264
  return;
208
265
  }
209
266
  // Exponential backoff with jitter
@@ -211,16 +268,16 @@ export class TcpClient extends EventEmitter {
211
268
  const jitter = Math.random() * 0.3 * baseDelay; // 0-30% jitter
212
269
  const delay = baseDelay + jitter;
213
270
  this.emit('reconnecting', { attempt: this.reconnectAttempts, delay });
214
- this.reconnectTimer = setTimeout(async () => {
271
+ this.reconnectTimer = setTimeout(() => {
215
272
  this.reconnectTimer = null;
216
- try {
217
- await this.connect();
273
+ this.connect()
274
+ .then(() => {
218
275
  // Process queued commands after reconnection
219
276
  this.processNextCommand();
220
- }
221
- catch {
277
+ })
278
+ .catch(() => {
222
279
  // connect() will schedule another reconnect if needed
223
- }
280
+ });
224
281
  }, delay);
225
282
  }
226
283
  /** Internal send without auto-connect */
@@ -236,35 +293,52 @@ export class TcpClient extends EventEmitter {
236
293
  this.processNextCommand();
237
294
  }
238
295
  }, this.options.commandTimeout);
239
- this.currentCommand = { command, resolve, reject, timeout };
240
- this.socket.write(JSON.stringify(command) + '\n');
296
+ this.currentCommand = { id: 0, command, resolve, reject, timeout };
297
+ if (this.socket) {
298
+ this.socket.write(JSON.stringify(command) + '\n');
299
+ }
241
300
  });
242
301
  }
243
302
  /** Process next pending command */
244
303
  processNextCommand() {
245
- if (this.currentCommand || !this.connected || this.pendingCommands.length === 0) {
304
+ if (this.currentCommand || !this.connected || this.pendingQueue.length === 0) {
246
305
  return;
247
306
  }
248
- const next = this.pendingCommands.shift();
307
+ const nextId = this.pendingQueue.shift();
308
+ if (nextId === undefined)
309
+ return;
310
+ const next = this.pendingCommands.get(nextId);
311
+ if (!next || !this.socket) {
312
+ this.pendingCommands.delete(nextId);
313
+ return;
314
+ }
315
+ this.pendingCommands.delete(nextId);
249
316
  this.currentCommand = next;
250
317
  this.socket.write(JSON.stringify(next.command) + '\n');
251
318
  }
252
319
  /** Send command and wait for response */
253
320
  async send(command) {
254
321
  // If connected and no pending commands, send immediately
255
- if (this.connected && this.pendingCommands.length === 0 && !this.currentCommand) {
322
+ if (this.connected && this.pendingCommands.size === 0 && !this.currentCommand) {
256
323
  return this.sendInternal(command);
257
324
  }
258
325
  // Otherwise queue the command
259
326
  return new Promise((resolve, reject) => {
327
+ const id = ++this.commandIdCounter;
260
328
  const timeout = setTimeout(() => {
261
- const idx = this.pendingCommands.findIndex((c) => c.command === command);
262
- if (idx !== -1) {
263
- this.pendingCommands.splice(idx, 1);
329
+ // O(1) lookup and delete with Map
330
+ if (this.pendingCommands.has(id)) {
331
+ this.pendingCommands.delete(id);
332
+ // Remove from queue (still O(n) but timeout is rare)
333
+ const queueIdx = this.pendingQueue.indexOf(id);
334
+ if (queueIdx !== -1) {
335
+ this.pendingQueue.splice(queueIdx, 1);
336
+ }
264
337
  reject(new Error('Command timeout'));
265
338
  }
266
339
  }, this.options.commandTimeout);
267
- this.pendingCommands.push({ command, resolve, reject, timeout });
340
+ this.pendingCommands.set(id, { id, command, resolve, reject, timeout });
341
+ this.pendingQueue.push(id);
268
342
  // Try to connect if not connected
269
343
  if (!this.connected && !this.connecting) {
270
344
  this.connect().catch(() => {
@@ -279,16 +353,18 @@ export class TcpClient extends EventEmitter {
279
353
  /** Close connection */
280
354
  close() {
281
355
  this.closed = true;
356
+ this.stopPing();
282
357
  if (this.reconnectTimer) {
283
358
  clearTimeout(this.reconnectTimer);
284
359
  this.reconnectTimer = null;
285
360
  }
286
361
  // Reject all pending commands
287
- for (const cmd of this.pendingCommands) {
362
+ for (const cmd of this.pendingCommands.values()) {
288
363
  clearTimeout(cmd.timeout);
289
364
  cmd.reject(new Error('Client closed'));
290
365
  }
291
- this.pendingCommands = [];
366
+ this.pendingCommands.clear();
367
+ this.pendingQueue = [];
292
368
  if (this.currentCommand) {
293
369
  clearTimeout(this.currentCommand.timeout);
294
370
  this.currentCommand.reject(new Error('Client closed'));
@@ -319,9 +395,7 @@ export class TcpClient extends EventEmitter {
319
395
  let sharedClient = null;
320
396
  /** Get shared TCP client */
321
397
  export function getSharedTcpClient(options) {
322
- if (!sharedClient) {
323
- sharedClient = new TcpClient(options);
324
- }
398
+ sharedClient ??= new TcpClient(options);
325
399
  return sharedClient;
326
400
  }
327
401
  /** Close shared client */
@@ -1 +1 @@
1
- {"version":3,"file":"tcpClient.js","sourceRoot":"","sources":["../../src/client/tcpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tcpClient.js","sourceRoot":"","sources":["../../src/client/tcpClient.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,18 @@ export interface PoolOptions extends Partial<ConnectionOptions> {
9
9
  }
10
10
  /**
11
11
  * Connection pool for parallel TCP operations
12
- * Round-robin distribution of commands across connections
12
+ * Load-aware distribution - prefers connected clients with capacity
13
13
  */
14
14
  export declare class TcpConnectionPool {
15
15
  private readonly clients;
16
16
  private readonly options;
17
17
  private currentIndex;
18
18
  private closed;
19
+ private refCount;
19
20
  constructor(options?: PoolOptions);
20
21
  /** Connect all clients in pool */
21
22
  connect(): Promise<void>;
22
- /** Get next client (round-robin) */
23
+ /** Get next client with load-aware selection */
23
24
  private getNextClient;
24
25
  /** Send command using next available connection */
25
26
  send(command: Record<string, unknown>): Promise<Record<string, unknown>>;
@@ -31,11 +32,19 @@ export declare class TcpConnectionPool {
31
32
  getConnectedCount(): number;
32
33
  /** Get pool size */
33
34
  getPoolSize(): number;
35
+ /** Increment reference count (for shared pools) */
36
+ addRef(): void;
37
+ /** Decrement reference count and close if zero */
38
+ release(): void;
34
39
  /** Close all connections */
35
40
  close(): void;
41
+ /** Check if pool is closed */
42
+ isClosed(): boolean;
36
43
  }
37
44
  /** Get or create shared connection pool */
38
45
  export declare function getSharedPool(options?: PoolOptions): TcpConnectionPool;
39
- /** Close shared pool */
40
- export declare function closeSharedPool(): void;
46
+ /** Release shared pool reference */
47
+ export declare function releaseSharedPool(pool: TcpConnectionPool): void;
48
+ /** Close all shared pools */
49
+ export declare function closeAllSharedPools(): void;
41
50
  //# sourceMappingURL=tcpPool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tcpPool.d.ts","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IAC7D,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,WAAgB;IA+BrC,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,oCAAoC;IACpC,OAAO,CAAC,aAAa;IAMrB,mDAAmD;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO9E,qDAAqD;IAC/C,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAcrG,uCAAuC;IACvC,WAAW,IAAI,OAAO;IAItB,sCAAsC;IACtC,iBAAiB,IAAI,MAAM;IAI3B,oBAAoB;IACpB,WAAW,IAAI,MAAM;IAIrB,4BAA4B;IAC5B,KAAK,IAAI,IAAI;CAOd;AAKD,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAKtE;AAED,wBAAwB;AACxB,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
1
+ {"version":3,"file":"tcpPool.d.ts","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IAC7D,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAK;gBAET,OAAO,GAAE,WAAgB;IAiCrC,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,gDAAgD;IAChD,OAAO,CAAC,aAAa;IAmBrB,mDAAmD;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO9E,qDAAqD;IAC/C,YAAY,CAChB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAc1C,uCAAuC;IACvC,WAAW,IAAI,OAAO;IAItB,sCAAsC;IACtC,iBAAiB,IAAI,MAAM;IAI3B,oBAAoB;IACpB,WAAW,IAAI,MAAM;IAIrB,mDAAmD;IACnD,MAAM,IAAI,IAAI;IAId,kDAAkD;IAClD,OAAO,IAAI,IAAI;IAOf,4BAA4B;IAC5B,KAAK,IAAI,IAAI;IASb,8BAA8B;IAC9B,QAAQ,IAAI,OAAO;CAGpB;AAYD,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAStE;AAED,oCAAoC;AACpC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAE/D;AAED,6BAA6B;AAC7B,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
@@ -5,13 +5,14 @@
5
5
  import { TcpClient } from './tcpClient';
6
6
  /**
7
7
  * Connection pool for parallel TCP operations
8
- * Round-robin distribution of commands across connections
8
+ * Load-aware distribution - prefers connected clients with capacity
9
9
  */
10
10
  export class TcpConnectionPool {
11
11
  clients = [];
12
12
  options;
13
13
  currentIndex = 0;
14
14
  closed = false;
15
+ refCount = 0; // Reference counting for shared pools
15
16
  constructor(options = {}) {
16
17
  this.options = {
17
18
  host: options.host ?? 'localhost',
@@ -24,6 +25,7 @@ export class TcpConnectionPool {
24
25
  connectTimeout: options.connectTimeout ?? 5000,
25
26
  commandTimeout: options.commandTimeout ?? 30000,
26
27
  autoReconnect: options.autoReconnect ?? true,
28
+ pingInterval: options.pingInterval ?? 30000,
27
29
  };
28
30
  // Create pool of connections
29
31
  for (let i = 0; i < this.options.poolSize; i++) {
@@ -37,6 +39,7 @@ export class TcpConnectionPool {
37
39
  connectTimeout: this.options.connectTimeout,
38
40
  commandTimeout: this.options.commandTimeout,
39
41
  autoReconnect: this.options.autoReconnect,
42
+ pingInterval: this.options.pingInterval,
40
43
  });
41
44
  this.clients.push(client);
42
45
  }
@@ -45,10 +48,21 @@ export class TcpConnectionPool {
45
48
  async connect() {
46
49
  await Promise.all(this.clients.map((c) => c.connect()));
47
50
  }
48
- /** Get next client (round-robin) */
51
+ /** Get next client with load-aware selection */
49
52
  getNextClient() {
53
+ const len = this.clients.length;
54
+ // First pass: try to find a connected client starting from current index
55
+ for (let i = 0; i < len; i++) {
56
+ const idx = (this.currentIndex + i) % len;
57
+ const client = this.clients[idx];
58
+ if (client.isConnected()) {
59
+ this.currentIndex = (idx + 1) % len;
60
+ return client;
61
+ }
62
+ }
63
+ // All disconnected: fall back to round-robin (they'll reconnect)
50
64
  const client = this.clients[this.currentIndex];
51
- this.currentIndex = (this.currentIndex + 1) % this.clients.length;
65
+ this.currentIndex = (this.currentIndex + 1) % len;
52
66
  return client;
53
67
  }
54
68
  /** Send command using next available connection */
@@ -82,29 +96,60 @@ export class TcpConnectionPool {
82
96
  getPoolSize() {
83
97
  return this.clients.length;
84
98
  }
99
+ /** Increment reference count (for shared pools) */
100
+ addRef() {
101
+ this.refCount++;
102
+ }
103
+ /** Decrement reference count and close if zero */
104
+ release() {
105
+ this.refCount--;
106
+ if (this.refCount <= 0) {
107
+ this.close();
108
+ }
109
+ }
85
110
  /** Close all connections */
86
111
  close() {
112
+ if (this.closed)
113
+ return;
87
114
  this.closed = true;
88
115
  for (const client of this.clients) {
89
116
  client.close();
90
117
  }
91
118
  this.clients.length = 0;
92
119
  }
120
+ /** Check if pool is closed */
121
+ isClosed() {
122
+ return this.closed;
123
+ }
124
+ }
125
+ /** Shared pools by host:port key */
126
+ const sharedPools = new Map();
127
+ /** Get pool key from options */
128
+ function getPoolKey(options) {
129
+ const host = options?.host ?? 'localhost';
130
+ const port = options?.port ?? 6789;
131
+ return `${host}:${port}`;
93
132
  }
94
- /** Shared pool instance */
95
- let sharedPool = null;
96
133
  /** Get or create shared connection pool */
97
134
  export function getSharedPool(options) {
98
- if (!sharedPool) {
99
- sharedPool = new TcpConnectionPool(options);
135
+ const key = getPoolKey(options);
136
+ let pool = sharedPools.get(key);
137
+ if (!pool) {
138
+ pool = new TcpConnectionPool(options);
139
+ sharedPools.set(key, pool);
100
140
  }
101
- return sharedPool;
141
+ pool.addRef();
142
+ return pool;
143
+ }
144
+ /** Release shared pool reference */
145
+ export function releaseSharedPool(pool) {
146
+ pool.release();
102
147
  }
103
- /** Close shared pool */
104
- export function closeSharedPool() {
105
- if (sharedPool) {
106
- sharedPool.close();
107
- sharedPool = null;
148
+ /** Close all shared pools */
149
+ export function closeAllSharedPools() {
150
+ for (const pool of sharedPools.values()) {
151
+ pool.close();
108
152
  }
153
+ sharedPools.clear();
109
154
  }
110
155
  //# sourceMappingURL=tcpPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tcpPool.js","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tcpPool.js","sourceRoot":"","sources":["../../src/client/tcpPool.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,7 @@ export interface QueueOptions {
63
63
  export interface WorkerOptions {
64
64
  concurrency?: number;
65
65
  autorun?: boolean;
66
- /** Heartbeat interval in ms (default: 10000) */
66
+ /** Heartbeat interval in ms (default: 10000). Set to 0 to disable. */
67
67
  heartbeatInterval?: number;
68
68
  /** Connection options - if omitted, connects to localhost:6789 */
69
69
  connection?: ConnectionOptions;
@@ -71,6 +71,8 @@ export interface WorkerOptions {
71
71
  embedded?: boolean;
72
72
  /** Batch size for pulling jobs (default: 10, max: 1000). Higher = fewer round-trips */
73
73
  batchSize?: number;
74
+ /** Long poll timeout in ms when queue is empty (default: 0 = no wait, max: 30000) */
75
+ pollTimeout?: number;
74
76
  }
75
77
  /** Stall configuration for a queue */
76
78
  export interface StallConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyKH,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2KH,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"}
@@ -5,8 +5,10 @@
5
5
  *
6
6
  * Performance optimizations:
7
7
  * - Batch pull: fetches multiple jobs per round-trip (batchSize option)
8
- * - Batch ACK: acknowledges multiple jobs per round-trip (ackInterval option)
9
- * - Parallel processing up to concurrency limit
8
+ * - Batch ACK with results: acknowledges multiple jobs per round-trip
9
+ * - Connection pooling: optional pool for high-concurrency scenarios
10
+ * - Long polling: reduces round-trips when queue is empty
11
+ * - TCP heartbeats: keeps jobs alive for stall detection
10
12
  */
11
13
  import { EventEmitter } from 'events';
12
14
  import type { WorkerOptions, Processor } from './types';
@@ -21,19 +23,25 @@ export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
21
23
  private readonly opts;
22
24
  private readonly processor;
23
25
  private readonly embedded;
24
- private readonly tcpClient;
26
+ private readonly tcp;
27
+ private readonly tcpPool;
25
28
  private running;
26
29
  private activeJobs;
27
30
  private pollTimer;
28
- private readonly heartbeatTimers;
31
+ private readonly activeJobIds;
32
+ private cachedActiveJobIds;
33
+ private activeJobIdsDirty;
34
+ private heartbeatTimer;
29
35
  private consecutiveErrors;
30
- private readonly pendingJobs;
36
+ private pendingJobs;
37
+ private pendingJobsHead;
31
38
  private readonly pendingAcks;
32
39
  private ackTimer;
33
40
  private readonly ackBatchSize;
34
41
  private readonly ackInterval;
35
42
  private static readonly MAX_BACKOFF_MS;
36
43
  private static readonly BASE_BACKOFF_MS;
44
+ private static readonly MAX_POLL_TIMEOUT;
37
45
  constructor(name: string, processor: Processor<T, R>, opts?: WorkerOptions);
38
46
  /** Start processing */
39
47
  run(): void;
@@ -43,22 +51,22 @@ export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
43
51
  resume(): void;
44
52
  /** Close worker gracefully */
45
53
  close(force?: boolean): Promise<void>;
54
+ /** Start global heartbeat timer for all active jobs (TCP mode) */
55
+ private startGlobalHeartbeat;
56
+ /** Send batch heartbeat for all active jobs */
57
+ private sendBatchHeartbeat;
46
58
  private poll;
47
59
  private tryProcess;
48
60
  /** Pull batch (embedded) */
49
61
  private pullBatchEmbedded;
50
- /** Pull batch of jobs via TCP */
62
+ /** Pull batch of jobs via TCP with optional long polling */
51
63
  private pullBatchTcp;
52
64
  /** Parse job from TCP response */
53
65
  private parseJob;
54
- /** Queue ACK for batch processing - fire and forget */
55
- private queueAckFireAndForget;
56
- /** Flush pending ACKs in batch */
66
+ /** Queue ACK for batch processing with result */
67
+ private queueAck;
68
+ /** Flush pending ACKs in batch with results */
57
69
  private flushAcks;
58
70
  private processJob;
59
- /** Start heartbeat timer for a job */
60
- private startHeartbeat;
61
- /** Stop heartbeat timer for a job */
62
- private stopHeartbeat;
63
71
  }
64
72
  //# sourceMappingURL=worker.d.ts.map