bunqueue 2.7.12 → 2.7.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.
- package/dist/application/clientTracking.d.ts +23 -0
- package/dist/application/clientTracking.d.ts.map +1 -1
- package/dist/application/clientTracking.js +80 -25
- package/dist/application/clientTracking.js.map +1 -1
- package/dist/application/lockManager.d.ts +1 -1
- package/dist/application/lockManager.d.ts.map +1 -1
- package/dist/application/lockManager.js +1 -1
- package/dist/application/lockManager.js.map +1 -1
- package/dist/application/queueManager.d.ts +7 -0
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +9 -0
- package/dist/application/queueManager.js.map +1 -1
- package/dist/client/sandboxed/wrapper.d.ts.map +1 -1
- package/dist/client/sandboxed/wrapper.js +34 -5
- package/dist/client/sandboxed/wrapper.js.map +1 -1
- package/dist/client/tcp/client.d.ts +9 -0
- package/dist/client/tcp/client.d.ts.map +1 -1
- package/dist/client/tcp/client.js +73 -20
- package/dist/client/tcp/client.js.map +1 -1
- package/dist/client/tcp/connection.d.ts.map +1 -1
- package/dist/client/tcp/connection.js +6 -1
- package/dist/client/tcp/connection.js.map +1 -1
- package/dist/client/tcp/types.d.ts +7 -0
- package/dist/client/tcp/types.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.d.ts +38 -0
- package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.js +97 -0
- package/dist/infrastructure/persistence/sqlite.js.map +1 -1
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +8 -0
- package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqliteBatch.js +16 -0
- package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -1
- package/dist/infrastructure/server/tcp.d.ts.map +1 -1
- package/dist/infrastructure/server/tcp.js +8 -4
- package/dist/infrastructure/server/tcp.js.map +1 -1
- package/dist/shared/lock.d.ts.map +1 -1
- package/dist/shared/lock.js +15 -0
- package/dist/shared/lock.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Worker Wrapper Script Generator
|
|
3
3
|
* Creates the wrapper script that loads processor in worker process
|
|
4
4
|
*/
|
|
5
|
-
import { mkdir, unlink } from 'node:fs/promises';
|
|
5
|
+
import { mkdir, unlink, realpath } from 'node:fs/promises';
|
|
6
6
|
import { closeSync, fsyncSync, openSync, writeSync } from 'node:fs';
|
|
7
|
-
import { join } from 'node:path';
|
|
7
|
+
import { join, normalize } from 'node:path';
|
|
8
8
|
/**
|
|
9
9
|
* Escape a string for safe embedding in a template literal
|
|
10
10
|
* Prevents code injection via backticks or backslashes in paths
|
|
@@ -16,9 +16,38 @@ function escapeForTemplateLiteral(str) {
|
|
|
16
16
|
* Create wrapper script file that loads the processor
|
|
17
17
|
*/
|
|
18
18
|
export async function createWrapperScript(queueName, processorPath) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
// Normalize the path so double slashes from callers like
|
|
20
|
+
// `${TMPDIR}/file` (TMPDIR often ends with `/`) don't trip the Worker's
|
|
21
|
+
// import resolver. Then resolve symlinks (e.g. macOS `/var` → `/private/var`)
|
|
22
|
+
// so the import target matches what Bun's module loader will see.
|
|
23
|
+
const normalized = normalize(processorPath.startsWith('/') ? processorPath : `${process.cwd()}/${processorPath}`);
|
|
24
|
+
// Verify the processor file is visible on disk before generating a wrapper
|
|
25
|
+
// that will import it from a Worker thread. On macOS, files written by
|
|
26
|
+
// Bun.write (no fsync) can briefly be invisible to fresh Worker processes,
|
|
27
|
+
// surfacing as ModuleNotFound when the wrapper's top-level await import()
|
|
28
|
+
// runs. Poll briefly with a fast cap to catch the race without slowing
|
|
29
|
+
// the happy path.
|
|
30
|
+
let processorVisible = false;
|
|
31
|
+
for (let i = 0; i < 20; i++) {
|
|
32
|
+
if (await Bun.file(normalized).exists()) {
|
|
33
|
+
processorVisible = true;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
await Bun.sleep(5);
|
|
37
|
+
}
|
|
38
|
+
if (!processorVisible) {
|
|
39
|
+
throw new Error(`Processor file not visible after polling: ${normalized}`);
|
|
40
|
+
}
|
|
41
|
+
// Resolve symlinks AFTER the existence check so a non-existent file fails
|
|
42
|
+
// with a clear error rather than realpath's ENOENT.
|
|
43
|
+
let fullPath;
|
|
44
|
+
try {
|
|
45
|
+
fullPath = await realpath(normalized);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// realpath can fail in restricted sandboxes; fall back to normalized.
|
|
49
|
+
fullPath = normalized;
|
|
50
|
+
}
|
|
22
51
|
// Escape the path to prevent code injection via backticks or template expressions
|
|
23
52
|
const escapedPath = escapeForTemplateLiteral(fullPath);
|
|
24
53
|
const wrapperCode = `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/client/sandboxed/wrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/client/sandboxed/wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { EventEmitter } from 'events';
|
|
7
7
|
import type { ConnectionOptions, ConnectionHealth } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Sentinel error class for the synthetic rejection issued by close()/rejectAll().
|
|
10
|
+
* Using a dedicated subclass (instead of matching `error.message`) ensures the
|
|
11
|
+
* process-level filter never collides with user code that happens to throw an
|
|
12
|
+
* Error whose message is "Client closed" (Redis, HTTP, DB pool clients all do).
|
|
13
|
+
*/
|
|
14
|
+
export declare class ClientClosedError extends Error {
|
|
15
|
+
constructor(message?: string);
|
|
16
|
+
}
|
|
8
17
|
/**
|
|
9
18
|
* TCP Client - manages connection to bunqueue server
|
|
10
19
|
* Supports pipelining for high-throughput operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,46 @@ import { ReconnectManager } from './reconnect';
|
|
|
10
10
|
import { createConnection, CommandQueue } from './connection';
|
|
11
11
|
import { pack, unpack } from 'msgpackr';
|
|
12
12
|
import { FrameParser } from '../../infrastructure/server/protocol';
|
|
13
|
+
/**
|
|
14
|
+
* Sentinel error class for the synthetic rejection issued by close()/rejectAll().
|
|
15
|
+
* Using a dedicated subclass (instead of matching `error.message`) ensures the
|
|
16
|
+
* process-level filter never collides with user code that happens to throw an
|
|
17
|
+
* Error whose message is "Client closed" (Redis, HTTP, DB pool clients all do).
|
|
18
|
+
*/
|
|
19
|
+
export class ClientClosedError extends Error {
|
|
20
|
+
constructor(message = 'Client closed') {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = 'ClientClosedError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* One-time installer of a process-level filter that swallows the synthetic
|
|
27
|
+
* ClientClosedError issued by close()/rejectAll(). Catches the rare chained-
|
|
28
|
+
* Promise leak that `cmd.promise?.catch(() => {})` in rejectAll cannot reach
|
|
29
|
+
* (e.g. await-then-throw patterns where the rejection propagates through the
|
|
30
|
+
* awaiter's own Promise chain).
|
|
31
|
+
*
|
|
32
|
+
* Implementation note: the listener is intentionally a no-op for non-matching
|
|
33
|
+
* rejections. process.on('unhandledRejection', fn) calls all registered
|
|
34
|
+
* listeners independently — so existing handlers (e.g. main.ts shutdown
|
|
35
|
+
* handler) still fire for real rejections. We must NOT re-throw here because
|
|
36
|
+
* a throw inside an unhandledRejection listener becomes an uncaughtException,
|
|
37
|
+
* which would interact badly with main.ts's existing uncaughtException
|
|
38
|
+
* handler and cause double-shutdown attempts.
|
|
39
|
+
*/
|
|
40
|
+
let clientClosedFilterInstalled = false;
|
|
41
|
+
function installClientClosedFilter() {
|
|
42
|
+
if (clientClosedFilterInstalled)
|
|
43
|
+
return;
|
|
44
|
+
clientClosedFilterInstalled = true;
|
|
45
|
+
process.on('unhandledRejection', (reason) => {
|
|
46
|
+
if (reason instanceof ClientClosedError) {
|
|
47
|
+
return; // swallow — other listeners (if any) fire independently
|
|
48
|
+
}
|
|
49
|
+
// Non-matching rejection: no-op here. Other registered listeners (or the
|
|
50
|
+
// runtime default per --unhandled-rejections) handle it independently.
|
|
51
|
+
});
|
|
52
|
+
}
|
|
13
53
|
/**
|
|
14
54
|
* TCP Client - manages connection to bunqueue server
|
|
15
55
|
* Supports pipelining for high-throughput operations
|
|
@@ -248,7 +288,9 @@ export class TcpClient extends EventEmitter {
|
|
|
248
288
|
this.health.recordCommandSent();
|
|
249
289
|
const reqId = this.generateReqId();
|
|
250
290
|
const commandWithReqId = { ...command, reqId };
|
|
251
|
-
|
|
291
|
+
// Definite-assignment assertion: assigned synchronously by Promise executor below.
|
|
292
|
+
let pendingRef;
|
|
293
|
+
const promise = new Promise((resolve, reject) => {
|
|
252
294
|
const timeout = setTimeout(() => {
|
|
253
295
|
// Try to remove from in-flight
|
|
254
296
|
const removed = this.commands.removeByReqId(reqId);
|
|
@@ -257,7 +299,7 @@ export class TcpClient extends EventEmitter {
|
|
|
257
299
|
reject(new Error('Command timeout'));
|
|
258
300
|
}
|
|
259
301
|
}, this.options.commandTimeout);
|
|
260
|
-
|
|
302
|
+
pendingRef = {
|
|
261
303
|
id: 0,
|
|
262
304
|
reqId,
|
|
263
305
|
command: commandWithReqId,
|
|
@@ -271,11 +313,13 @@ export class TcpClient extends EventEmitter {
|
|
|
271
313
|
},
|
|
272
314
|
timeout,
|
|
273
315
|
};
|
|
274
|
-
// Add to in-flight tracking
|
|
275
|
-
this.commands.addInFlight(pending);
|
|
276
|
-
// Send immediately
|
|
277
|
-
this.socket?.write(FrameParser.frame(pack(commandWithReqId)));
|
|
278
316
|
});
|
|
317
|
+
// Promise constructor executor is synchronous, so pendingRef is assigned.
|
|
318
|
+
pendingRef.promise = promise;
|
|
319
|
+
this.commands.addInFlight(pendingRef);
|
|
320
|
+
// Send immediately (this.socket null-checked at entry of sendDirect)
|
|
321
|
+
this.socket.write(FrameParser.frame(pack(commandWithReqId)));
|
|
322
|
+
return promise;
|
|
279
323
|
}
|
|
280
324
|
/**
|
|
281
325
|
* Process queued commands
|
|
@@ -313,8 +357,10 @@ export class TcpClient extends EventEmitter {
|
|
|
313
357
|
this.health.recordCommandSent();
|
|
314
358
|
const reqId = this.generateReqId();
|
|
315
359
|
const commandWithReqId = { ...command, reqId };
|
|
316
|
-
|
|
317
|
-
|
|
360
|
+
const id = this.commands.nextId();
|
|
361
|
+
// Definite-assignment assertion: assigned synchronously by Promise executor below.
|
|
362
|
+
let pendingRef;
|
|
363
|
+
const promise = new Promise((resolve, reject) => {
|
|
318
364
|
const timeout = setTimeout(() => {
|
|
319
365
|
// Try to remove from queue first
|
|
320
366
|
if (this.commands.remove(id)) {
|
|
@@ -329,7 +375,7 @@ export class TcpClient extends EventEmitter {
|
|
|
329
375
|
reject(new Error('Command timeout'));
|
|
330
376
|
}
|
|
331
377
|
}, this.options.commandTimeout);
|
|
332
|
-
|
|
378
|
+
pendingRef = {
|
|
333
379
|
id,
|
|
334
380
|
reqId,
|
|
335
381
|
command: commandWithReqId,
|
|
@@ -343,24 +389,31 @@ export class TcpClient extends EventEmitter {
|
|
|
343
389
|
},
|
|
344
390
|
timeout,
|
|
345
391
|
};
|
|
346
|
-
// Add to queue
|
|
347
|
-
this.commands.enqueue(pending);
|
|
348
|
-
// Connect if needed, then process queue
|
|
349
|
-
if (!this.connected && !this.connecting) {
|
|
350
|
-
// Connection errors during send are handled by command timeout/rejection
|
|
351
|
-
this.connect().catch(() => { });
|
|
352
|
-
}
|
|
353
|
-
else if (this.connected) {
|
|
354
|
-
this.processQueue();
|
|
355
|
-
}
|
|
356
392
|
});
|
|
393
|
+
// Promise constructor executor is synchronous, so pendingRef is assigned.
|
|
394
|
+
pendingRef.promise = promise;
|
|
395
|
+
this.commands.enqueue(pendingRef);
|
|
396
|
+
// Connect if needed, then process queue
|
|
397
|
+
if (!this.connected && !this.connecting) {
|
|
398
|
+
// Connection errors during send are handled by command timeout/rejection
|
|
399
|
+
this.connect().catch(() => { });
|
|
400
|
+
}
|
|
401
|
+
else if (this.connected) {
|
|
402
|
+
this.processQueue();
|
|
403
|
+
}
|
|
404
|
+
return promise;
|
|
357
405
|
}
|
|
358
406
|
/** Close connection */
|
|
359
407
|
close() {
|
|
360
408
|
this.reconnect.setClosed(true);
|
|
361
409
|
this.health.stopPing();
|
|
362
410
|
this.reconnect.cancelReconnect();
|
|
363
|
-
|
|
411
|
+
// Install a process-level filter for the synthetic ClientClosedError we
|
|
412
|
+
// are about to issue. Catches the rare case where a caller's .catch() is
|
|
413
|
+
// attached on a chained Promise that our cmd.promise?.catch() cannot
|
|
414
|
+
// reach (await-then-throw patterns).
|
|
415
|
+
installClientClosedFilter();
|
|
416
|
+
this.commands.rejectAll(new ClientClosedError());
|
|
364
417
|
if (this.socket) {
|
|
365
418
|
this.socket.end();
|
|
366
419
|
this.socket = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/tcp/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/tcp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/connection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG7D,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAuF3B;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAAK;IAE7B,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAE1E,wDAAwD;IACxD,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,wCAAwC;IACxC,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAInD,6CAA6C;IAC7C,UAAU,IAAI,OAAO;IAIrB,uCAAuC;IACvC,gBAAgB,IAAI,MAAM;IAI1B,gEAAgE;IAChE,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIzC,iDAAiD;IACjD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI1C,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAQxD,2BAA2B;IAC3B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKtC,0BAA0B;IAC1B,MAAM,IAAI,MAAM;IAIhB,2BAA2B;IAC3B,OAAO,IAAI,cAAc,GAAG,IAAI;IAWhC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW3B,gDAAgD;IAChD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/connection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG7D,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAwB;AACxB,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAuF3B;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAAK;IAE7B,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAE1E,wDAAwD;IACxD,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,wCAAwC;IACxC,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAInD,6CAA6C;IAC7C,UAAU,IAAI,OAAO;IAIrB,uCAAuC;IACvC,gBAAgB,IAAI,MAAM;IAI1B,gEAAgE;IAChE,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIzC,iDAAiD;IACjD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI1C,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAQxD,2BAA2B;IAC3B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKtC,0BAA0B;IAC1B,MAAM,IAAI,MAAM;IAIhB,2BAA2B;IAC3B,OAAO,IAAI,cAAc,GAAG,IAAI;IAWhC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAW3B,gDAAgD;IAChD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IA6B7B,kEAAkE;IAClE,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;CASlC"}
|
|
@@ -165,9 +165,13 @@ export class CommandQueue {
|
|
|
165
165
|
}
|
|
166
166
|
/** Reject all pending and in-flight commands */
|
|
167
167
|
rejectAll(error) {
|
|
168
|
-
// Reject queued commands
|
|
168
|
+
// Reject queued commands. Attach a silent .catch BEFORE rejecting so that
|
|
169
|
+
// callers without a .catch in place (fire-and-forget heartbeats, polling
|
|
170
|
+
// loops mid-await on intentional close) don't surface as unhandled
|
|
171
|
+
// rejections and force non-zero process exit.
|
|
169
172
|
for (const cmd of this.pendingCommands.values()) {
|
|
170
173
|
clearTimeout(cmd.timeout);
|
|
174
|
+
cmd.promise?.catch(() => { });
|
|
171
175
|
cmd.reject(error);
|
|
172
176
|
}
|
|
173
177
|
this.pendingCommands.clear();
|
|
@@ -175,6 +179,7 @@ export class CommandQueue {
|
|
|
175
179
|
// Reject in-flight commands (pipelining)
|
|
176
180
|
for (const cmd of this.inFlightByReqId.values()) {
|
|
177
181
|
clearTimeout(cmd.timeout);
|
|
182
|
+
cmd.promise?.catch(() => { });
|
|
178
183
|
cmd.reject(error);
|
|
179
184
|
}
|
|
180
185
|
this.inFlightByReqId.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/client/tcp/connection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/client/tcp/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,13 @@ export interface PendingCommand {
|
|
|
63
63
|
resolve: (value: Record<string, unknown>) => void;
|
|
64
64
|
reject: (error: Error) => void;
|
|
65
65
|
timeout: ReturnType<typeof setTimeout>;
|
|
66
|
+
/**
|
|
67
|
+
* Reference to the Promise returned to the caller. Used by rejectAll() on
|
|
68
|
+
* intentional shutdown to attach a silent .catch — prevents unhandled
|
|
69
|
+
* rejections from leaking when callers (fire-and-forget heartbeats, polling
|
|
70
|
+
* loops mid-await) don't have a .catch in place at the moment we reject.
|
|
71
|
+
*/
|
|
72
|
+
promise?: Promise<Record<string, unknown>>;
|
|
66
73
|
}
|
|
67
74
|
/** Socket wrapper interface */
|
|
68
75
|
export interface SocketWrapper {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,MAAM,WAAW,iBAAiB;IAChC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9D,2CAA2C;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,iCAAiC;AACjC,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,CAc1D,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,MAAM,WAAW,iBAAiB;IAChC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,KAAK,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9D,2CAA2C;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,iCAAiC;AACjC,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,CAc1D,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACvC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC5C;AAED,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;CACzC"}
|
|
@@ -6,6 +6,15 @@
|
|
|
6
6
|
import type { Job, JobId, JobTimelineEntry } from '../../domain/types/job';
|
|
7
7
|
import type { CronJob } from '../../domain/types/cron';
|
|
8
8
|
import type { DlqEntry } from '../../domain/types/dlq';
|
|
9
|
+
/** Critical-loss callback: invoked when WriteBuffer drops jobs after exhausting retries. */
|
|
10
|
+
export type SqliteCriticalLossCallback = (jobs: Job[], lastError: Error, attempts: number) => void;
|
|
11
|
+
/** Record of a critical job loss event (jobs dropped after max retries). */
|
|
12
|
+
export interface SqliteCriticalLoss {
|
|
13
|
+
jobs: Job[];
|
|
14
|
+
error: string;
|
|
15
|
+
attempts: number;
|
|
16
|
+
at: number;
|
|
17
|
+
}
|
|
9
18
|
/** SQLite configuration */
|
|
10
19
|
export interface SqliteConfig {
|
|
11
20
|
path: string;
|
|
@@ -16,6 +25,8 @@ export interface SqliteConfig {
|
|
|
16
25
|
writeBufferSize?: number;
|
|
17
26
|
/** Write buffer flush interval in ms (default: 50) */
|
|
18
27
|
writeBufferFlushMs?: number;
|
|
28
|
+
/** Callback invoked when WriteBuffer drops jobs after exhausting retries. */
|
|
29
|
+
onCriticalLoss?: SqliteCriticalLossCallback;
|
|
19
30
|
}
|
|
20
31
|
/**
|
|
21
32
|
* SQLite Storage class with write buffering for high throughput
|
|
@@ -28,7 +39,26 @@ export declare class SqliteStorage {
|
|
|
28
39
|
private _diskFull;
|
|
29
40
|
private _lastDiskFullError;
|
|
30
41
|
private _lastDiskFullAt;
|
|
42
|
+
private readonly _criticalLosses;
|
|
43
|
+
private readonly _onCriticalLoss?;
|
|
44
|
+
/** Cap on retained critical-loss records to prevent unbounded growth */
|
|
45
|
+
private static readonly MAX_RETAINED_LOSSES;
|
|
31
46
|
constructor(config: SqliteConfig);
|
|
47
|
+
/**
|
|
48
|
+
* Default handler for WriteBuffer critical loss. Logs every dropped job so
|
|
49
|
+
* ops can recover from logs, retains the last MAX_RETAINED_LOSSES records
|
|
50
|
+
* for programmatic inspection, and forwards to a user-provided callback.
|
|
51
|
+
*
|
|
52
|
+
* Without this handler the dropped jobs would be silently discarded by
|
|
53
|
+
* sqliteBatch.ts:209-223 (no callback = no recovery path).
|
|
54
|
+
*/
|
|
55
|
+
private handleCriticalLoss;
|
|
56
|
+
/** Truncate job data preview to keep logs readable. */
|
|
57
|
+
private previewJobData;
|
|
58
|
+
/** Retrieve retained critical-loss records (most recent last). */
|
|
59
|
+
getCriticalLosses(): readonly SqliteCriticalLoss[];
|
|
60
|
+
/** Clear retained critical-loss records (e.g. after operator acknowledgement). */
|
|
61
|
+
clearCriticalLosses(): void;
|
|
32
62
|
/** Mark disk as full and log */
|
|
33
63
|
private setDiskFull;
|
|
34
64
|
/** Execute a write operation with SQLITE_FULL detection */
|
|
@@ -52,6 +82,14 @@ export declare class SqliteStorage {
|
|
|
52
82
|
insertJob(job: Job, durable?: boolean): void;
|
|
53
83
|
/** Insert job immediately (bypass buffer) */
|
|
54
84
|
insertJobImmediate(job: Job): void;
|
|
85
|
+
/**
|
|
86
|
+
* Ensure a job's buffered INSERT has been written to disk before issuing a
|
|
87
|
+
* state-mutating UPDATE. Without this, markActive/markCompleted's UPDATE
|
|
88
|
+
* would silently match 0 rows and the state change would be overwritten
|
|
89
|
+
* when the buffered INSERT eventually fires with the original
|
|
90
|
+
* 'waiting'/'delayed' state baked at insert time.
|
|
91
|
+
*/
|
|
92
|
+
private flushIfBuffered;
|
|
55
93
|
markActive(jobId: JobId, startedAt: number, timeline?: JobTimelineEntry[]): void;
|
|
56
94
|
markCompleted(jobId: JobId, completedAt: number, timeline?: JobTimelineEntry[]): void;
|
|
57
95
|
markFailed(job: Job, error: string | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOvD,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqlite.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,11 +27,16 @@ export class SqliteStorage {
|
|
|
27
27
|
_diskFull = false;
|
|
28
28
|
_lastDiskFullError = null;
|
|
29
29
|
_lastDiskFullAt = null;
|
|
30
|
+
_criticalLosses = [];
|
|
31
|
+
_onCriticalLoss;
|
|
32
|
+
/** Cap on retained critical-loss records to prevent unbounded growth */
|
|
33
|
+
static MAX_RETAINED_LOSSES = 100;
|
|
30
34
|
constructor(config) {
|
|
31
35
|
this.db = new Database(config.path, { create: true });
|
|
32
36
|
this.db.run(PRAGMA_SETTINGS);
|
|
33
37
|
this.migrate();
|
|
34
38
|
this.statements = prepareStatements(this.db);
|
|
39
|
+
this._onCriticalLoss = config.onCriticalLoss;
|
|
35
40
|
// Initialize batch manager and write buffer
|
|
36
41
|
this.batchManager = new BatchInsertManager(this.db);
|
|
37
42
|
this.writeBuffer = new WriteBuffer(this.batchManager, config.writeBufferSize ?? 100, config.writeBufferFlushMs ?? 10, (err, jobCount) => {
|
|
@@ -43,8 +48,77 @@ export class SqliteStorage {
|
|
|
43
48
|
error: err.message,
|
|
44
49
|
diskFull: this._diskFull,
|
|
45
50
|
});
|
|
51
|
+
}, (jobs, lastError, attempts) => {
|
|
52
|
+
this.handleCriticalLoss(jobs, lastError, attempts);
|
|
46
53
|
});
|
|
47
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Default handler for WriteBuffer critical loss. Logs every dropped job so
|
|
57
|
+
* ops can recover from logs, retains the last MAX_RETAINED_LOSSES records
|
|
58
|
+
* for programmatic inspection, and forwards to a user-provided callback.
|
|
59
|
+
*
|
|
60
|
+
* Without this handler the dropped jobs would be silently discarded by
|
|
61
|
+
* sqliteBatch.ts:209-223 (no callback = no recovery path).
|
|
62
|
+
*/
|
|
63
|
+
handleCriticalLoss(jobs, lastError, attempts) {
|
|
64
|
+
storageLog.error('CRITICAL: WriteBuffer dropped jobs after exhausting retries', {
|
|
65
|
+
lostJobCount: jobs.length,
|
|
66
|
+
attempts,
|
|
67
|
+
error: lastError.message,
|
|
68
|
+
diskFull: this._diskFull,
|
|
69
|
+
});
|
|
70
|
+
for (const job of jobs) {
|
|
71
|
+
storageLog.error('Lost job (recover from this log if needed)', {
|
|
72
|
+
id: String(job.id),
|
|
73
|
+
queue: job.queue,
|
|
74
|
+
customId: job.customId,
|
|
75
|
+
priority: job.priority,
|
|
76
|
+
createdAt: job.createdAt,
|
|
77
|
+
attempts: job.attempts,
|
|
78
|
+
// Data preview (truncated to avoid log spam from huge payloads)
|
|
79
|
+
dataPreview: this.previewJobData(job.data),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
this._criticalLosses.push({
|
|
83
|
+
jobs,
|
|
84
|
+
error: lastError.message,
|
|
85
|
+
attempts,
|
|
86
|
+
at: Date.now(),
|
|
87
|
+
});
|
|
88
|
+
// Bound retention
|
|
89
|
+
while (this._criticalLosses.length > SqliteStorage.MAX_RETAINED_LOSSES) {
|
|
90
|
+
this._criticalLosses.shift();
|
|
91
|
+
}
|
|
92
|
+
// Forward to user-supplied callback if provided
|
|
93
|
+
if (this._onCriticalLoss) {
|
|
94
|
+
try {
|
|
95
|
+
this._onCriticalLoss(jobs, lastError, attempts);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
storageLog.error('onCriticalLoss callback threw', {
|
|
99
|
+
error: err instanceof Error ? err.message : String(err),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Truncate job data preview to keep logs readable. */
|
|
105
|
+
previewJobData(data) {
|
|
106
|
+
try {
|
|
107
|
+
const s = JSON.stringify(data);
|
|
108
|
+
return s.length > 500 ? s.slice(0, 500) + '...[truncated]' : s;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return '[unserializable]';
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Retrieve retained critical-loss records (most recent last). */
|
|
115
|
+
getCriticalLosses() {
|
|
116
|
+
return this._criticalLosses;
|
|
117
|
+
}
|
|
118
|
+
/** Clear retained critical-loss records (e.g. after operator acknowledgement). */
|
|
119
|
+
clearCriticalLosses() {
|
|
120
|
+
this._criticalLosses.length = 0;
|
|
121
|
+
}
|
|
48
122
|
/** Mark disk as full and log */
|
|
49
123
|
setDiskFull(message) {
|
|
50
124
|
if (!this._diskFull) {
|
|
@@ -132,7 +206,28 @@ export class SqliteStorage {
|
|
|
132
206
|
.run(job.id, job.queue, pack(job.data), job.priority, job.createdAt, job.runAt, job.attempts, job.maxAttempts, job.backoff, job.ttl, job.timeout, job.uniqueKey, job.customId, job.dependsOn.length > 0 ? pack(job.dependsOn) : null, job.parentId, job.childrenIds.length > 0 ? pack(job.childrenIds) : null, job.tags.length > 0 ? pack(job.tags) : null, job.runAt > Date.now() ? 'delayed' : 'waiting', job.lifo ? 1 : 0, job.groupId, job.removeOnComplete ? 1 : 0, job.removeOnFail ? 1 : 0, job.stallTimeout, job.timeline.length > 0 ? pack(job.timeline) : null);
|
|
133
207
|
});
|
|
134
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Ensure a job's buffered INSERT has been written to disk before issuing a
|
|
211
|
+
* state-mutating UPDATE. Without this, markActive/markCompleted's UPDATE
|
|
212
|
+
* would silently match 0 rows and the state change would be overwritten
|
|
213
|
+
* when the buffered INSERT eventually fires with the original
|
|
214
|
+
* 'waiting'/'delayed' state baked at insert time.
|
|
215
|
+
*/
|
|
216
|
+
flushIfBuffered(jobId) {
|
|
217
|
+
if (this.writeBuffer.hasPending(String(jobId))) {
|
|
218
|
+
try {
|
|
219
|
+
this.writeBuffer.flush();
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
// Flush errors are already routed through onError/onCriticalLoss.
|
|
223
|
+
// Proceed to UPDATE — if the row really isn't there the UPDATE will
|
|
224
|
+
// no-op and the caller's in-memory state stays authoritative until
|
|
225
|
+
// the next successful flush or recovery cycle.
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
135
229
|
markActive(jobId, startedAt, timeline) {
|
|
230
|
+
this.flushIfBuffered(jobId);
|
|
136
231
|
this.safeWrite(() => {
|
|
137
232
|
this.statements
|
|
138
233
|
.get('updateJobState')
|
|
@@ -140,6 +235,7 @@ export class SqliteStorage {
|
|
|
140
235
|
});
|
|
141
236
|
}
|
|
142
237
|
markCompleted(jobId, completedAt, timeline) {
|
|
238
|
+
this.flushIfBuffered(jobId);
|
|
143
239
|
this.safeWrite(() => {
|
|
144
240
|
this.statements
|
|
145
241
|
.get('completeJob')
|
|
@@ -147,6 +243,7 @@ export class SqliteStorage {
|
|
|
147
243
|
});
|
|
148
244
|
}
|
|
149
245
|
markFailed(job, error) {
|
|
246
|
+
this.flushIfBuffered(job.id);
|
|
150
247
|
this.safeWrite(() => {
|
|
151
248
|
this.statements.get('insertDlq').run(job.id, job.queue, pack({ job, error }), Date.now());
|
|
152
249
|
});
|