bunqueue 1.9.7 → 1.9.9
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/backgroundTasks.d.ts +3 -6
- package/dist/application/backgroundTasks.d.ts.map +1 -1
- package/dist/application/backgroundTasks.js +10 -179
- package/dist/application/backgroundTasks.js.map +1 -1
- package/dist/application/cleanupTasks.d.ts +1 -1
- package/dist/application/cleanupTasks.d.ts.map +1 -1
- package/dist/application/cleanupTasks.js +61 -22
- package/dist/application/cleanupTasks.js.map +1 -1
- package/dist/application/clientTracking.d.ts +22 -0
- package/dist/application/clientTracking.d.ts.map +1 -0
- package/dist/application/clientTracking.js +118 -0
- package/dist/application/clientTracking.js.map +1 -0
- package/dist/application/contextFactory.d.ts +97 -0
- package/dist/application/contextFactory.d.ts.map +1 -0
- package/dist/application/contextFactory.js +170 -0
- package/dist/application/contextFactory.js.map +1 -0
- package/dist/application/dependencyProcessor.d.ts +11 -0
- package/dist/application/dependencyProcessor.d.ts.map +1 -0
- package/dist/application/dependencyProcessor.js +69 -0
- package/dist/application/dependencyProcessor.js.map +1 -0
- package/dist/application/dlqManager.d.ts +12 -0
- package/dist/application/dlqManager.d.ts.map +1 -1
- package/dist/application/dlqManager.js +36 -0
- package/dist/application/dlqManager.js.map +1 -1
- package/dist/application/lockManager.d.ts +3 -49
- package/dist/application/lockManager.d.ts.map +1 -1
- package/dist/application/lockManager.js +101 -272
- package/dist/application/lockManager.js.map +1 -1
- package/dist/application/lockOperations.d.ts +39 -0
- package/dist/application/lockOperations.d.ts.map +1 -0
- package/dist/application/lockOperations.js +101 -0
- package/dist/application/lockOperations.js.map +1 -0
- package/dist/application/operations/ack.d.ts +1 -5
- package/dist/application/operations/ack.d.ts.map +1 -1
- package/dist/application/operations/ack.js +43 -259
- package/dist/application/operations/ack.js.map +1 -1
- package/dist/application/operations/ackHelpers.d.ts +79 -0
- package/dist/application/operations/ackHelpers.d.ts.map +1 -0
- package/dist/application/operations/ackHelpers.js +173 -0
- package/dist/application/operations/ackHelpers.js.map +1 -0
- package/dist/application/operations/jobManagement.d.ts +2 -0
- package/dist/application/operations/jobManagement.d.ts.map +1 -1
- package/dist/application/operations/jobManagement.js +8 -0
- package/dist/application/operations/jobManagement.js.map +1 -1
- package/dist/application/operations/push.d.ts.map +1 -1
- package/dist/application/operations/push.js +20 -6
- package/dist/application/operations/push.js.map +1 -1
- package/dist/application/operations/queryOperations.d.ts +11 -0
- package/dist/application/operations/queryOperations.d.ts.map +1 -1
- package/dist/application/operations/queryOperations.js +32 -0
- package/dist/application/operations/queryOperations.js.map +1 -1
- package/dist/application/queueManager.d.ts +3 -11
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +98 -244
- package/dist/application/queueManager.js.map +1 -1
- package/dist/application/stallDetection.d.ts +11 -0
- package/dist/application/stallDetection.d.ts.map +1 -0
- package/dist/application/stallDetection.js +128 -0
- package/dist/application/stallDetection.js.map +1 -0
- package/dist/application/types.js +1 -1
- package/dist/application/types.js.map +1 -1
- package/dist/cli/client.d.ts +3 -5
- package/dist/cli/client.d.ts.map +1 -1
- package/dist/cli/client.js +31 -27
- package/dist/cli/client.js.map +1 -1
- package/dist/cli/commands/core.js +3 -3
- package/dist/cli/commands/core.js.map +1 -1
- package/dist/cli/commands/job.js +14 -14
- package/dist/cli/commands/job.js.map +1 -1
- package/dist/cli/commands/server.d.ts.map +1 -1
- package/dist/cli/commands/server.js +5 -29
- package/dist/cli/commands/server.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/client/events.d.ts +0 -1
- package/dist/client/events.d.ts.map +1 -1
- package/dist/client/events.js +4 -7
- package/dist/client/events.js.map +1 -1
- package/dist/client/flow.d.ts +23 -1
- package/dist/client/flow.d.ts.map +1 -1
- package/dist/client/flow.js +166 -68
- package/dist/client/flow.js.map +1 -1
- package/dist/client/queue/queue.d.ts.map +1 -1
- package/dist/client/queue/queue.js +3 -1
- package/dist/client/queue/queue.js.map +1 -1
- package/dist/client/sandboxed/types.d.ts +1 -0
- package/dist/client/sandboxed/types.d.ts.map +1 -1
- package/dist/client/sandboxed/worker.d.ts +1 -0
- package/dist/client/sandboxed/worker.d.ts.map +1 -1
- package/dist/client/sandboxed/worker.js +31 -8
- package/dist/client/sandboxed/worker.js.map +1 -1
- package/dist/client/sandboxed/wrapper.d.ts.map +1 -1
- package/dist/client/sandboxed/wrapper.js +10 -1
- package/dist/client/sandboxed/wrapper.js.map +1 -1
- package/dist/client/tcp/client.d.ts +4 -1
- package/dist/client/tcp/client.d.ts.map +1 -1
- package/dist/client/tcp/client.js +26 -8
- package/dist/client/tcp/client.js.map +1 -1
- package/dist/client/tcp/connection.d.ts +6 -8
- package/dist/client/tcp/connection.d.ts.map +1 -1
- package/dist/client/tcp/connection.js +24 -22
- package/dist/client/tcp/connection.js.map +1 -1
- package/dist/client/tcp/index.d.ts +0 -1
- package/dist/client/tcp/index.d.ts.map +1 -1
- package/dist/client/tcp/index.js +0 -1
- package/dist/client/tcp/index.js.map +1 -1
- package/dist/client/tcp/types.d.ts +8 -13
- package/dist/client/tcp/types.d.ts.map +1 -1
- package/dist/client/tcp/types.js +0 -1
- package/dist/client/tcp/types.js.map +1 -1
- package/dist/client/tcpPool.d.ts.map +1 -1
- package/dist/client/tcpPool.js +0 -6
- package/dist/client/tcpPool.js.map +1 -1
- package/dist/client/worker/ackBatcher.d.ts +1 -1
- package/dist/client/worker/ackBatcher.d.ts.map +1 -1
- package/dist/client/worker/ackBatcher.js +20 -18
- package/dist/client/worker/ackBatcher.js.map +1 -1
- package/dist/client/worker/jobParser.d.ts.map +1 -1
- package/dist/client/worker/jobParser.js +8 -7
- package/dist/client/worker/jobParser.js.map +1 -1
- package/dist/client/worker/processor.d.ts.map +1 -1
- package/dist/client/worker/processor.js +10 -6
- package/dist/client/worker/processor.js.map +1 -1
- package/dist/domain/queue/dependencyTracker.d.ts +74 -0
- package/dist/domain/queue/dependencyTracker.d.ts.map +1 -0
- package/dist/domain/queue/dependencyTracker.js +126 -0
- package/dist/domain/queue/dependencyTracker.js.map +1 -0
- package/dist/domain/queue/dlqShard.d.ts +61 -0
- package/dist/domain/queue/dlqShard.d.ts.map +1 -0
- package/dist/domain/queue/dlqShard.js +175 -0
- package/dist/domain/queue/dlqShard.js.map +1 -0
- package/dist/domain/queue/limiterManager.d.ts +44 -0
- package/dist/domain/queue/limiterManager.d.ts.map +1 -0
- package/dist/domain/queue/limiterManager.js +99 -0
- package/dist/domain/queue/limiterManager.js.map +1 -0
- package/dist/domain/queue/shard.d.ts +33 -124
- package/dist/domain/queue/shard.d.ts.map +1 -1
- package/dist/domain/queue/shard.js +157 -427
- package/dist/domain/queue/shard.js.map +1 -1
- package/dist/domain/queue/temporalManager.d.ts +82 -0
- package/dist/domain/queue/temporalManager.d.ts.map +1 -0
- package/dist/domain/queue/temporalManager.js +150 -0
- package/dist/domain/queue/temporalManager.js.map +1 -0
- package/dist/domain/queue/uniqueKeyManager.d.ts +32 -0
- package/dist/domain/queue/uniqueKeyManager.d.ts.map +1 -0
- package/dist/domain/queue/uniqueKeyManager.js +87 -0
- package/dist/domain/queue/uniqueKeyManager.js.map +1 -0
- package/dist/domain/types/command.d.ts +6 -0
- package/dist/domain/types/command.d.ts.map +1 -1
- package/dist/infrastructure/backup/s3Backup.d.ts +3 -40
- package/dist/infrastructure/backup/s3Backup.d.ts.map +1 -1
- package/dist/infrastructure/backup/s3Backup.js +10 -182
- package/dist/infrastructure/backup/s3Backup.js.map +1 -1
- package/dist/infrastructure/backup/s3BackupConfig.d.ts +67 -0
- package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +1 -0
- package/dist/infrastructure/backup/s3BackupConfig.js +48 -0
- package/dist/infrastructure/backup/s3BackupConfig.js.map +1 -0
- package/dist/infrastructure/backup/s3BackupOperations.d.ts +23 -0
- package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -0
- package/dist/infrastructure/backup/s3BackupOperations.js +170 -0
- package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -0
- package/dist/infrastructure/persistence/sqlite.d.ts +6 -13
- package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.js +28 -179
- package/dist/infrastructure/persistence/sqlite.js.map +1 -1
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +38 -0
- package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -0
- package/dist/infrastructure/persistence/sqliteBatch.js +124 -0
- package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -0
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +17 -0
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -0
- package/dist/infrastructure/persistence/sqliteSerializer.js +81 -0
- package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -0
- package/dist/infrastructure/persistence/statements.d.ts +1 -1
- package/dist/infrastructure/persistence/statements.d.ts.map +1 -1
- package/dist/infrastructure/persistence/statements.js +3 -2
- package/dist/infrastructure/persistence/statements.js.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts +7 -0
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +23 -3
- package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
- package/dist/infrastructure/server/handler.d.ts.map +1 -1
- package/dist/infrastructure/server/handler.js +1 -186
- package/dist/infrastructure/server/handler.js.map +1 -1
- package/dist/infrastructure/server/handlerRoutes.d.ts +23 -0
- package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -0
- package/dist/infrastructure/server/handlerRoutes.js +190 -0
- package/dist/infrastructure/server/handlerRoutes.js.map +1 -0
- package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/core.js +26 -19
- package/dist/infrastructure/server/handlers/core.js.map +1 -1
- package/dist/infrastructure/server/http.d.ts +4 -25
- package/dist/infrastructure/server/http.d.ts.map +1 -1
- package/dist/infrastructure/server/http.js +68 -285
- package/dist/infrastructure/server/http.js.map +1 -1
- package/dist/infrastructure/server/httpEndpoints.d.ts +19 -0
- package/dist/infrastructure/server/httpEndpoints.d.ts.map +1 -0
- package/dist/infrastructure/server/httpEndpoints.js +151 -0
- package/dist/infrastructure/server/httpEndpoints.js.map +1 -0
- package/dist/infrastructure/server/protocol.d.ts +15 -1
- package/dist/infrastructure/server/protocol.d.ts.map +1 -1
- package/dist/infrastructure/server/protocol.js +37 -3
- package/dist/infrastructure/server/protocol.js.map +1 -1
- package/dist/infrastructure/server/sseHandler.d.ts +27 -0
- package/dist/infrastructure/server/sseHandler.d.ts.map +1 -0
- package/dist/infrastructure/server/sseHandler.js +77 -0
- package/dist/infrastructure/server/sseHandler.js.map +1 -0
- package/dist/infrastructure/server/tcp.d.ts +8 -10
- package/dist/infrastructure/server/tcp.d.ts.map +1 -1
- package/dist/infrastructure/server/tcp.js +51 -42
- package/dist/infrastructure/server/tcp.js.map +1 -1
- package/dist/infrastructure/server/wsHandler.d.ts +31 -0
- package/dist/infrastructure/server/wsHandler.d.ts.map +1 -0
- package/dist/infrastructure/server/wsHandler.js +63 -0
- package/dist/infrastructure/server/wsHandler.js.map +1 -0
- package/dist/main.js +2 -4
- package/dist/main.js.map +1 -1
- package/dist/mcp/index.js +3 -465
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mcpHandlers.d.ts +129 -0
- package/dist/mcp/mcpHandlers.d.ts.map +1 -0
- package/dist/mcp/mcpHandlers.js +204 -0
- package/dist/mcp/mcpHandlers.js.map +1 -0
- package/dist/mcp/mcpTools.d.ts +15 -0
- package/dist/mcp/mcpTools.d.ts.map +1 -0
- package/dist/mcp/mcpTools.js +277 -0
- package/dist/mcp/mcpTools.js.map +1 -0
- package/dist/shared/lru.d.ts +23 -0
- package/dist/shared/lru.d.ts.map +1 -1
- package/dist/shared/lru.js +61 -3
- package/dist/shared/lru.js.map +1 -1
- package/dist/shared/skipList.d.ts +10 -2
- package/dist/shared/skipList.d.ts.map +1 -1
- package/dist/shared/skipList.js +22 -1
- package/dist/shared/skipList.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/dashboard.d.ts +0 -32
- package/dist/cli/dashboard.d.ts.map +0 -1
- package/dist/cli/dashboard.js +0 -183
- package/dist/cli/dashboard.js.map +0 -1
- package/dist/client/tcp/lineBuffer.d.ts +0 -17
- package/dist/client/tcp/lineBuffer.d.ts.map +0 -1
- package/dist/client/tcp/lineBuffer.js +0 -32
- package/dist/client/tcp/lineBuffer.js.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { Database } from 'bun:sqlite';
|
|
6
6
|
/** Statement names */
|
|
7
|
-
export type StatementName = 'insertJob' | 'updateJobState' | 'completeJob' | 'deleteJob' | 'getJob' | 'insertResult' | 'getResult' | 'insertDlq' | 'loadDlq' | 'deleteDlqEntry' | 'clearDlqQueue' | 'insertCron';
|
|
7
|
+
export type StatementName = 'insertJob' | 'updateJobState' | 'completeJob' | 'deleteJob' | 'getJob' | 'insertResult' | 'getResult' | 'insertDlq' | 'loadDlq' | 'deleteDlqEntry' | 'clearDlqQueue' | 'insertCron' | 'updateCron';
|
|
8
8
|
/** SQL statements */
|
|
9
9
|
export declare const SQL_STATEMENTS: Record<StatementName, string>;
|
|
10
10
|
/** Prepare all statements */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/statements.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,QAAQ,GACR,cAAc,GACd,WAAW,GACX,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,YAAY,CAAC;AAEjB,qBAAqB;AACrB,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/persistence/statements.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,QAAQ,GACR,cAAc,GACd,WAAW,GACX,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,YAAY,CAAC;AAEjB,qBAAqB;AACrB,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CA2CxD,CAAC;AAEF,6BAA6B;AAC7B,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,GACX,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAQrD;AAED,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,sCAAsC;AACtC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -8,12 +8,12 @@ export const SQL_STATEMENTS = {
|
|
|
8
8
|
INSERT INTO jobs (
|
|
9
9
|
id, queue, data, priority, created_at, run_at, attempts,
|
|
10
10
|
max_attempts, backoff, ttl, timeout, unique_key, custom_id,
|
|
11
|
-
depends_on, parent_id, tags, state, lifo, group_id,
|
|
11
|
+
depends_on, parent_id, children_ids, tags, state, lifo, group_id,
|
|
12
12
|
remove_on_complete, remove_on_fail, stall_timeout
|
|
13
13
|
) VALUES (
|
|
14
14
|
?, ?, ?, ?, ?, ?, ?,
|
|
15
15
|
?, ?, ?, ?, ?, ?,
|
|
16
|
-
?, ?, ?, ?, ?, ?,
|
|
16
|
+
?, ?, ?, ?, ?, ?, ?,
|
|
17
17
|
?, ?, ?
|
|
18
18
|
)
|
|
19
19
|
`,
|
|
@@ -32,6 +32,7 @@ export const SQL_STATEMENTS = {
|
|
|
32
32
|
(name, queue, data, schedule, repeat_every, priority, next_run, executions, max_limit, timezone)
|
|
33
33
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
34
34
|
`,
|
|
35
|
+
updateCron: 'UPDATE cron_jobs SET executions = ?, next_run = ? WHERE name = ?',
|
|
35
36
|
};
|
|
36
37
|
/** Prepare all statements */
|
|
37
38
|
export function prepareStatements(db) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/statements.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"statements.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/statements.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,SAAS,EAAE;;;;;;;;;;;;GAYV;IAED,cAAc,EAAE,wDAAwD;IAExE,WAAW,EAAE,0EAA0E;IAEvF,SAAS,EAAE,+BAA+B;IAE1C,MAAM,EAAE,iCAAiC;IAEzC,YAAY,EACV,oFAAoF;IAEtF,SAAS,EAAE,iDAAiD;IAE5D,SAAS,EAAE,wEAAwE;IAEnF,OAAO,EAAE,uCAAuC;IAEhD,cAAc,EAAE,kCAAkC;IAElD,aAAa,EAAE,iCAAiC;IAEhD,UAAU,EAAE;;;;GAIX;IAED,UAAU,EAAE,kEAAkE;CAC/E,CAAC;AAEF,6BAA6B;AAC7B,MAAM,UAAU,iBAAiB,CAC/B,EAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkD,CAAC;IAE7E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACzD,UAAU,CAAC,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -11,6 +11,8 @@ export interface CronSchedulerConfig {
|
|
|
11
11
|
}
|
|
12
12
|
/** Push job callback type */
|
|
13
13
|
export type PushJobCallback = (queue: string, input: JobInput) => Promise<void>;
|
|
14
|
+
/** Persist cron state callback type */
|
|
15
|
+
export type PersistCronCallback = (name: string, executions: number, nextRun: number) => void;
|
|
14
16
|
/**
|
|
15
17
|
* Cron Scheduler
|
|
16
18
|
* Periodically checks and executes due cron jobs
|
|
@@ -27,11 +29,16 @@ export declare class CronScheduler {
|
|
|
27
29
|
private generation;
|
|
28
30
|
private checkInterval;
|
|
29
31
|
private pushJob;
|
|
32
|
+
private persistCron;
|
|
30
33
|
constructor(config?: CronSchedulerConfig);
|
|
31
34
|
/**
|
|
32
35
|
* Set the push job callback
|
|
33
36
|
*/
|
|
34
37
|
setPushCallback(callback: PushJobCallback): void;
|
|
38
|
+
/**
|
|
39
|
+
* Set the persist cron callback for saving state after execution
|
|
40
|
+
*/
|
|
41
|
+
setPersistCallback(callback: PersistCronCallback): void;
|
|
35
42
|
/**
|
|
36
43
|
* Start the scheduler
|
|
37
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ9F;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAoC;gBAE3C,MAAM,GAAE,mBAAwB;IAI5C;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAoCjC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC;;OAEG;IACH,IAAI,IAAI,OAAO,EAAE;IAIjB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAY5B;;;;OAIG;YACW,IAAI;IAwFlB;;;OAGG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CA4BvE"}
|
|
@@ -26,6 +26,7 @@ export class CronScheduler {
|
|
|
26
26
|
generation = 0;
|
|
27
27
|
checkInterval = null;
|
|
28
28
|
pushJob = null;
|
|
29
|
+
persistCron = null;
|
|
29
30
|
constructor(config = {}) {
|
|
30
31
|
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
31
32
|
}
|
|
@@ -35,6 +36,12 @@ export class CronScheduler {
|
|
|
35
36
|
setPushCallback(callback) {
|
|
36
37
|
this.pushJob = callback;
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Set the persist cron callback for saving state after execution
|
|
41
|
+
*/
|
|
42
|
+
setPersistCallback(callback) {
|
|
43
|
+
this.persistCron = callback;
|
|
44
|
+
}
|
|
38
45
|
/**
|
|
39
46
|
* Start the scheduler
|
|
40
47
|
*/
|
|
@@ -167,13 +174,26 @@ export class CronScheduler {
|
|
|
167
174
|
});
|
|
168
175
|
// Update execution count
|
|
169
176
|
cron.executions++;
|
|
170
|
-
// Calculate next run
|
|
177
|
+
// Calculate next run using actual execution time to prevent timing drift
|
|
178
|
+
const executionTime = Date.now();
|
|
171
179
|
if (cron.schedule) {
|
|
172
180
|
const expanded = expandCronShortcut(cron.schedule);
|
|
173
|
-
cron.nextRun = getNextCronRun(expanded,
|
|
181
|
+
cron.nextRun = getNextCronRun(expanded, executionTime, cron.timezone ?? undefined);
|
|
174
182
|
}
|
|
175
183
|
else if (cron.repeatEvery) {
|
|
176
|
-
cron.nextRun = getNextIntervalRun(cron.repeatEvery,
|
|
184
|
+
cron.nextRun = getNextIntervalRun(cron.repeatEvery, executionTime);
|
|
185
|
+
}
|
|
186
|
+
// Persist updated cron state to database
|
|
187
|
+
if (this.persistCron) {
|
|
188
|
+
try {
|
|
189
|
+
this.persistCron(cron.name, cron.executions, cron.nextRun);
|
|
190
|
+
}
|
|
191
|
+
catch (persistErr) {
|
|
192
|
+
cronLog.error('Failed to persist cron state', {
|
|
193
|
+
name: cron.name,
|
|
194
|
+
error: String(persistErr),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
177
197
|
}
|
|
178
198
|
// Re-insert with same generation (not stale)
|
|
179
199
|
toReinsert.push(entry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAmC,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,MAAM,cAAc,GAAkC;IACpD,eAAe,EAAE,IAAI;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAa9C,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmB9C;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8CxF"}
|
|
@@ -4,14 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as resp from '../../domain/types/response';
|
|
6
6
|
import { constantTimeEqual } from '../../shared/hash';
|
|
7
|
-
|
|
8
|
-
import { handlePush, handlePushBatch, handlePull, handlePullBatch, handleAck, handleAckBatch, handleFail, } from './handlers/core';
|
|
9
|
-
import { handleGetJob, handleGetState, handleGetResult, handleGetJobCounts, handleGetCountsPerPriority, handleGetJobByCustomId, handleGetJobs, } from './handlers/query';
|
|
10
|
-
import { handleCancel, handleProgress, handleGetProgress, handlePause, handleResume, handleDrain, handleStats, handleMetrics, } from './handlers/management';
|
|
11
|
-
import { handleDlq, handleRetryDlq, handlePurgeDlq, handleRetryCompleted } from './handlers/dlq';
|
|
12
|
-
import { handleCron, handleCronDelete, handleCronList } from './handlers/cron';
|
|
13
|
-
import { handleUpdate, handleChangePriority, handlePromote, handleMoveToDelayed, handleDiscard, handleWaitJob, handleIsPaused, handleObliterate, handleListQueues, handleClean, handleCount, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleClearConcurrency, } from './handlers/advanced';
|
|
14
|
-
import { handleAddLog, handleGetLogs, handleHeartbeat, handleJobHeartbeat, handleJobHeartbeatBatch, handlePing, handleRegisterWorker, handleUnregisterWorker, handleListWorkers, handleAddWebhook, handleRemoveWebhook, handleListWebhooks, handlePrometheus, } from './handlers/monitoring';
|
|
7
|
+
import { routeCoreCommand, routeQueryCommand, routeManagementCommand, routeQueueControlCommand, routeDlqCommand, routeRateLimitCommand, routeCronCommand, routeMonitoringCommand, } from './handlerRoutes';
|
|
15
8
|
/**
|
|
16
9
|
* Handle authentication command
|
|
17
10
|
*/
|
|
@@ -24,184 +17,6 @@ function handleAuth(cmd, ctx, reqId) {
|
|
|
24
17
|
}
|
|
25
18
|
return resp.error('Invalid token', reqId);
|
|
26
19
|
}
|
|
27
|
-
/** Route core commands (PUSH, PULL, ACK, FAIL) */
|
|
28
|
-
async function routeCoreCommand(cmd, ctx, reqId) {
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
30
|
-
switch (cmd.cmd) {
|
|
31
|
-
case 'PUSH':
|
|
32
|
-
return handlePush(cmd, ctx, reqId);
|
|
33
|
-
case 'PUSHB':
|
|
34
|
-
return handlePushBatch(cmd, ctx, reqId);
|
|
35
|
-
case 'PULL':
|
|
36
|
-
return handlePull(cmd, ctx, reqId);
|
|
37
|
-
case 'PULLB':
|
|
38
|
-
return handlePullBatch(cmd, ctx, reqId);
|
|
39
|
-
case 'ACK':
|
|
40
|
-
return handleAck(cmd, ctx, reqId);
|
|
41
|
-
case 'ACKB':
|
|
42
|
-
return handleAckBatch(cmd, ctx, reqId);
|
|
43
|
-
case 'FAIL':
|
|
44
|
-
return handleFail(cmd, ctx, reqId);
|
|
45
|
-
default:
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/** Route query commands */
|
|
50
|
-
async function routeQueryCommand(cmd, ctx, reqId) {
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
52
|
-
switch (cmd.cmd) {
|
|
53
|
-
case 'GetJob':
|
|
54
|
-
return handleGetJob(cmd, ctx, reqId);
|
|
55
|
-
case 'GetState':
|
|
56
|
-
return handleGetState(cmd, ctx, reqId);
|
|
57
|
-
case 'GetResult':
|
|
58
|
-
return handleGetResult(cmd, ctx, reqId);
|
|
59
|
-
case 'GetJobCounts':
|
|
60
|
-
return handleGetJobCounts(cmd, ctx, reqId);
|
|
61
|
-
case 'GetCountsPerPriority':
|
|
62
|
-
return handleGetCountsPerPriority(cmd, ctx, reqId);
|
|
63
|
-
case 'GetJobByCustomId':
|
|
64
|
-
return handleGetJobByCustomId(cmd, ctx, reqId);
|
|
65
|
-
case 'GetJobs':
|
|
66
|
-
return handleGetJobs(cmd, ctx, reqId);
|
|
67
|
-
case 'Count':
|
|
68
|
-
return handleCount(cmd, ctx, reqId);
|
|
69
|
-
case 'GetProgress':
|
|
70
|
-
return handleGetProgress(cmd, ctx, reqId);
|
|
71
|
-
default:
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/** Route management commands */
|
|
76
|
-
async function routeManagementCommand(cmd, ctx, reqId) {
|
|
77
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
78
|
-
switch (cmd.cmd) {
|
|
79
|
-
case 'Cancel':
|
|
80
|
-
return handleCancel(cmd, ctx, reqId);
|
|
81
|
-
case 'Progress':
|
|
82
|
-
return handleProgress(cmd, ctx, reqId);
|
|
83
|
-
case 'Update':
|
|
84
|
-
return handleUpdate(cmd, ctx, reqId);
|
|
85
|
-
case 'ChangePriority':
|
|
86
|
-
return handleChangePriority(cmd, ctx, reqId);
|
|
87
|
-
case 'Promote':
|
|
88
|
-
return handlePromote(cmd, ctx, reqId);
|
|
89
|
-
case 'MoveToDelayed':
|
|
90
|
-
return handleMoveToDelayed(cmd, ctx, reqId);
|
|
91
|
-
case 'Discard':
|
|
92
|
-
return handleDiscard(cmd, ctx, reqId);
|
|
93
|
-
case 'WaitJob':
|
|
94
|
-
return handleWaitJob(cmd, ctx, reqId);
|
|
95
|
-
default:
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/** Route queue control commands */
|
|
100
|
-
function routeQueueControlCommand(cmd, ctx, reqId) {
|
|
101
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
102
|
-
switch (cmd.cmd) {
|
|
103
|
-
case 'Pause':
|
|
104
|
-
return handlePause(cmd, ctx, reqId);
|
|
105
|
-
case 'Resume':
|
|
106
|
-
return handleResume(cmd, ctx, reqId);
|
|
107
|
-
case 'IsPaused':
|
|
108
|
-
return handleIsPaused(cmd, ctx, reqId);
|
|
109
|
-
case 'Drain':
|
|
110
|
-
return handleDrain(cmd, ctx, reqId);
|
|
111
|
-
case 'Obliterate':
|
|
112
|
-
return handleObliterate(cmd, ctx, reqId);
|
|
113
|
-
case 'ListQueues':
|
|
114
|
-
return handleListQueues(cmd, ctx, reqId);
|
|
115
|
-
case 'Clean':
|
|
116
|
-
return handleClean(cmd, ctx, reqId);
|
|
117
|
-
default:
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/** Route DLQ commands */
|
|
122
|
-
function routeDlqCommand(cmd, ctx, reqId) {
|
|
123
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
124
|
-
switch (cmd.cmd) {
|
|
125
|
-
case 'Dlq':
|
|
126
|
-
return handleDlq(cmd, ctx, reqId);
|
|
127
|
-
case 'RetryDlq':
|
|
128
|
-
return handleRetryDlq(cmd, ctx, reqId);
|
|
129
|
-
case 'PurgeDlq':
|
|
130
|
-
return handlePurgeDlq(cmd, ctx, reqId);
|
|
131
|
-
case 'RetryCompleted':
|
|
132
|
-
return handleRetryCompleted(cmd, ctx, reqId);
|
|
133
|
-
default:
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/** Route rate limit commands */
|
|
138
|
-
function routeRateLimitCommand(cmd, ctx, reqId) {
|
|
139
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
140
|
-
switch (cmd.cmd) {
|
|
141
|
-
case 'RateLimit':
|
|
142
|
-
return handleRateLimit(cmd, ctx, reqId);
|
|
143
|
-
case 'RateLimitClear':
|
|
144
|
-
return handleRateLimitClear(cmd, ctx, reqId);
|
|
145
|
-
case 'SetConcurrency':
|
|
146
|
-
return handleSetConcurrency(cmd, ctx, reqId);
|
|
147
|
-
case 'ClearConcurrency':
|
|
148
|
-
return handleClearConcurrency(cmd, ctx, reqId);
|
|
149
|
-
default:
|
|
150
|
-
return null;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/** Route cron commands */
|
|
154
|
-
function routeCronCommand(cmd, ctx, reqId) {
|
|
155
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
156
|
-
switch (cmd.cmd) {
|
|
157
|
-
case 'Cron':
|
|
158
|
-
return handleCron(cmd, ctx, reqId);
|
|
159
|
-
case 'CronDelete':
|
|
160
|
-
return handleCronDelete(cmd, ctx, reqId);
|
|
161
|
-
case 'CronList':
|
|
162
|
-
return handleCronList(cmd, ctx, reqId);
|
|
163
|
-
default:
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/** Route monitoring commands */
|
|
168
|
-
function routeMonitoringCommand(cmd, ctx, reqId) {
|
|
169
|
-
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
170
|
-
switch (cmd.cmd) {
|
|
171
|
-
case 'Stats':
|
|
172
|
-
return handleStats(ctx, reqId);
|
|
173
|
-
case 'Metrics':
|
|
174
|
-
return handleMetrics(ctx, reqId);
|
|
175
|
-
case 'Prometheus':
|
|
176
|
-
return handlePrometheus(cmd, ctx, reqId);
|
|
177
|
-
case 'AddLog':
|
|
178
|
-
return handleAddLog(cmd, ctx, reqId);
|
|
179
|
-
case 'GetLogs':
|
|
180
|
-
return handleGetLogs(cmd, ctx, reqId);
|
|
181
|
-
case 'Heartbeat':
|
|
182
|
-
return handleHeartbeat(cmd, ctx, reqId);
|
|
183
|
-
case 'JobHeartbeat':
|
|
184
|
-
return handleJobHeartbeat(cmd, ctx, reqId);
|
|
185
|
-
case 'JobHeartbeatB':
|
|
186
|
-
return handleJobHeartbeatBatch(cmd, ctx, reqId);
|
|
187
|
-
case 'Ping':
|
|
188
|
-
return handlePing(cmd, ctx, reqId);
|
|
189
|
-
case 'RegisterWorker':
|
|
190
|
-
return handleRegisterWorker(cmd, ctx, reqId);
|
|
191
|
-
case 'UnregisterWorker':
|
|
192
|
-
return handleUnregisterWorker(cmd, ctx, reqId);
|
|
193
|
-
case 'ListWorkers':
|
|
194
|
-
return handleListWorkers(cmd, ctx, reqId);
|
|
195
|
-
case 'AddWebhook':
|
|
196
|
-
return handleAddWebhook(cmd, ctx, reqId);
|
|
197
|
-
case 'RemoveWebhook':
|
|
198
|
-
return handleRemoveWebhook(cmd, ctx, reqId);
|
|
199
|
-
case 'ListWebhooks':
|
|
200
|
-
return handleListWebhooks(cmd, ctx, reqId);
|
|
201
|
-
default:
|
|
202
|
-
return null;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
20
|
/**
|
|
206
21
|
* Main command handler - routes to specific handlers
|
|
207
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/infrastructure/server/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/infrastructure/server/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,SAAS,UAAU,CACjB,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,GAAmB;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,IAAI,CAAC;QACH,iCAAiC;QACjC,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,gDAAgD;QAChD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAuB,CAAC;QAE5B,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler Routes - Command routing by category
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from '../../domain/types/command';
|
|
5
|
+
import type { Response } from '../../domain/types/response';
|
|
6
|
+
import type { HandlerContext } from './types';
|
|
7
|
+
/** Route core commands (PUSH, PULL, ACK, FAIL) */
|
|
8
|
+
export declare function routeCoreCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Promise<Response | null>;
|
|
9
|
+
/** Route query commands */
|
|
10
|
+
export declare function routeQueryCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Promise<Response | null>;
|
|
11
|
+
/** Route management commands */
|
|
12
|
+
export declare function routeManagementCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Promise<Response | null>;
|
|
13
|
+
/** Route queue control commands */
|
|
14
|
+
export declare function routeQueueControlCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Response | null;
|
|
15
|
+
/** Route DLQ commands */
|
|
16
|
+
export declare function routeDlqCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Response | null;
|
|
17
|
+
/** Route rate limit commands */
|
|
18
|
+
export declare function routeRateLimitCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Response | null;
|
|
19
|
+
/** Route cron commands */
|
|
20
|
+
export declare function routeCronCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Response | null;
|
|
21
|
+
/** Route monitoring commands */
|
|
22
|
+
export declare function routeMonitoringCommand(cmd: Command, ctx: HandlerContext, reqId?: string): Response | null;
|
|
23
|
+
//# sourceMappingURL=handlerRoutes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlerRoutes.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/handlerRoutes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAwE9C,kDAAkD;AAClD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAoB1B;AAED,2BAA2B;AAC3B,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAwB1B;AAED,gCAAgC;AAChC,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAsB1B;AAED,mCAAmC;AACnC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAoBjB;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAcjB;AAED,gCAAgC;AAChC,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAcjB;AAED,0BAA0B;AAC1B,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAYjB;AAED,gCAAgC;AAChC,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAoCjB"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler Routes - Command routing by category
|
|
3
|
+
*/
|
|
4
|
+
// Import handlers
|
|
5
|
+
import { handlePush, handlePushBatch, handlePull, handlePullBatch, handleAck, handleAckBatch, handleFail, } from './handlers/core';
|
|
6
|
+
import { handleGetJob, handleGetState, handleGetResult, handleGetJobCounts, handleGetCountsPerPriority, handleGetJobByCustomId, handleGetJobs, } from './handlers/query';
|
|
7
|
+
import { handleCancel, handleProgress, handleGetProgress, handlePause, handleResume, handleDrain, handleStats, handleMetrics, } from './handlers/management';
|
|
8
|
+
import { handleDlq, handleRetryDlq, handlePurgeDlq, handleRetryCompleted } from './handlers/dlq';
|
|
9
|
+
import { handleCron, handleCronDelete, handleCronList } from './handlers/cron';
|
|
10
|
+
import { handleUpdate, handleChangePriority, handlePromote, handleMoveToDelayed, handleDiscard, handleWaitJob, handleIsPaused, handleObliterate, handleListQueues, handleClean, handleCount, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleClearConcurrency, } from './handlers/advanced';
|
|
11
|
+
import { handleAddLog, handleGetLogs, handleHeartbeat, handleJobHeartbeat, handleJobHeartbeatBatch, handlePing, handleRegisterWorker, handleUnregisterWorker, handleListWorkers, handleAddWebhook, handleRemoveWebhook, handleListWebhooks, handlePrometheus, } from './handlers/monitoring';
|
|
12
|
+
/** Route core commands (PUSH, PULL, ACK, FAIL) */
|
|
13
|
+
export async function routeCoreCommand(cmd, ctx, reqId) {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
15
|
+
switch (cmd.cmd) {
|
|
16
|
+
case 'PUSH':
|
|
17
|
+
return handlePush(cmd, ctx, reqId);
|
|
18
|
+
case 'PUSHB':
|
|
19
|
+
return handlePushBatch(cmd, ctx, reqId);
|
|
20
|
+
case 'PULL':
|
|
21
|
+
return handlePull(cmd, ctx, reqId);
|
|
22
|
+
case 'PULLB':
|
|
23
|
+
return handlePullBatch(cmd, ctx, reqId);
|
|
24
|
+
case 'ACK':
|
|
25
|
+
return handleAck(cmd, ctx, reqId);
|
|
26
|
+
case 'ACKB':
|
|
27
|
+
return handleAckBatch(cmd, ctx, reqId);
|
|
28
|
+
case 'FAIL':
|
|
29
|
+
return handleFail(cmd, ctx, reqId);
|
|
30
|
+
default:
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Route query commands */
|
|
35
|
+
export async function routeQueryCommand(cmd, ctx, reqId) {
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
37
|
+
switch (cmd.cmd) {
|
|
38
|
+
case 'GetJob':
|
|
39
|
+
return handleGetJob(cmd, ctx, reqId);
|
|
40
|
+
case 'GetState':
|
|
41
|
+
return handleGetState(cmd, ctx, reqId);
|
|
42
|
+
case 'GetResult':
|
|
43
|
+
return handleGetResult(cmd, ctx, reqId);
|
|
44
|
+
case 'GetJobCounts':
|
|
45
|
+
return handleGetJobCounts(cmd, ctx, reqId);
|
|
46
|
+
case 'GetCountsPerPriority':
|
|
47
|
+
return handleGetCountsPerPriority(cmd, ctx, reqId);
|
|
48
|
+
case 'GetJobByCustomId':
|
|
49
|
+
return handleGetJobByCustomId(cmd, ctx, reqId);
|
|
50
|
+
case 'GetJobs':
|
|
51
|
+
return handleGetJobs(cmd, ctx, reqId);
|
|
52
|
+
case 'Count':
|
|
53
|
+
return handleCount(cmd, ctx, reqId);
|
|
54
|
+
case 'GetProgress':
|
|
55
|
+
return handleGetProgress(cmd, ctx, reqId);
|
|
56
|
+
default:
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Route management commands */
|
|
61
|
+
export async function routeManagementCommand(cmd, ctx, reqId) {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
63
|
+
switch (cmd.cmd) {
|
|
64
|
+
case 'Cancel':
|
|
65
|
+
return handleCancel(cmd, ctx, reqId);
|
|
66
|
+
case 'Progress':
|
|
67
|
+
return handleProgress(cmd, ctx, reqId);
|
|
68
|
+
case 'Update':
|
|
69
|
+
return handleUpdate(cmd, ctx, reqId);
|
|
70
|
+
case 'ChangePriority':
|
|
71
|
+
return handleChangePriority(cmd, ctx, reqId);
|
|
72
|
+
case 'Promote':
|
|
73
|
+
return handlePromote(cmd, ctx, reqId);
|
|
74
|
+
case 'MoveToDelayed':
|
|
75
|
+
return handleMoveToDelayed(cmd, ctx, reqId);
|
|
76
|
+
case 'Discard':
|
|
77
|
+
return handleDiscard(cmd, ctx, reqId);
|
|
78
|
+
case 'WaitJob':
|
|
79
|
+
return handleWaitJob(cmd, ctx, reqId);
|
|
80
|
+
default:
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/** Route queue control commands */
|
|
85
|
+
export function routeQueueControlCommand(cmd, ctx, reqId) {
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
87
|
+
switch (cmd.cmd) {
|
|
88
|
+
case 'Pause':
|
|
89
|
+
return handlePause(cmd, ctx, reqId);
|
|
90
|
+
case 'Resume':
|
|
91
|
+
return handleResume(cmd, ctx, reqId);
|
|
92
|
+
case 'IsPaused':
|
|
93
|
+
return handleIsPaused(cmd, ctx, reqId);
|
|
94
|
+
case 'Drain':
|
|
95
|
+
return handleDrain(cmd, ctx, reqId);
|
|
96
|
+
case 'Obliterate':
|
|
97
|
+
return handleObliterate(cmd, ctx, reqId);
|
|
98
|
+
case 'ListQueues':
|
|
99
|
+
return handleListQueues(cmd, ctx, reqId);
|
|
100
|
+
case 'Clean':
|
|
101
|
+
return handleClean(cmd, ctx, reqId);
|
|
102
|
+
default:
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** Route DLQ commands */
|
|
107
|
+
export function routeDlqCommand(cmd, ctx, reqId) {
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
109
|
+
switch (cmd.cmd) {
|
|
110
|
+
case 'Dlq':
|
|
111
|
+
return handleDlq(cmd, ctx, reqId);
|
|
112
|
+
case 'RetryDlq':
|
|
113
|
+
return handleRetryDlq(cmd, ctx, reqId);
|
|
114
|
+
case 'PurgeDlq':
|
|
115
|
+
return handlePurgeDlq(cmd, ctx, reqId);
|
|
116
|
+
case 'RetryCompleted':
|
|
117
|
+
return handleRetryCompleted(cmd, ctx, reqId);
|
|
118
|
+
default:
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** Route rate limit commands */
|
|
123
|
+
export function routeRateLimitCommand(cmd, ctx, reqId) {
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
125
|
+
switch (cmd.cmd) {
|
|
126
|
+
case 'RateLimit':
|
|
127
|
+
return handleRateLimit(cmd, ctx, reqId);
|
|
128
|
+
case 'RateLimitClear':
|
|
129
|
+
return handleRateLimitClear(cmd, ctx, reqId);
|
|
130
|
+
case 'SetConcurrency':
|
|
131
|
+
return handleSetConcurrency(cmd, ctx, reqId);
|
|
132
|
+
case 'ClearConcurrency':
|
|
133
|
+
return handleClearConcurrency(cmd, ctx, reqId);
|
|
134
|
+
default:
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/** Route cron commands */
|
|
139
|
+
export function routeCronCommand(cmd, ctx, reqId) {
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
141
|
+
switch (cmd.cmd) {
|
|
142
|
+
case 'Cron':
|
|
143
|
+
return handleCron(cmd, ctx, reqId);
|
|
144
|
+
case 'CronDelete':
|
|
145
|
+
return handleCronDelete(cmd, ctx, reqId);
|
|
146
|
+
case 'CronList':
|
|
147
|
+
return handleCronList(cmd, ctx, reqId);
|
|
148
|
+
default:
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** Route monitoring commands */
|
|
153
|
+
export function routeMonitoringCommand(cmd, ctx, reqId) {
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
155
|
+
switch (cmd.cmd) {
|
|
156
|
+
case 'Stats':
|
|
157
|
+
return handleStats(ctx, reqId);
|
|
158
|
+
case 'Metrics':
|
|
159
|
+
return handleMetrics(ctx, reqId);
|
|
160
|
+
case 'Prometheus':
|
|
161
|
+
return handlePrometheus(cmd, ctx, reqId);
|
|
162
|
+
case 'AddLog':
|
|
163
|
+
return handleAddLog(cmd, ctx, reqId);
|
|
164
|
+
case 'GetLogs':
|
|
165
|
+
return handleGetLogs(cmd, ctx, reqId);
|
|
166
|
+
case 'Heartbeat':
|
|
167
|
+
return handleHeartbeat(cmd, ctx, reqId);
|
|
168
|
+
case 'JobHeartbeat':
|
|
169
|
+
return handleJobHeartbeat(cmd, ctx, reqId);
|
|
170
|
+
case 'JobHeartbeatB':
|
|
171
|
+
return handleJobHeartbeatBatch(cmd, ctx, reqId);
|
|
172
|
+
case 'Ping':
|
|
173
|
+
return handlePing(cmd, ctx, reqId);
|
|
174
|
+
case 'RegisterWorker':
|
|
175
|
+
return handleRegisterWorker(cmd, ctx, reqId);
|
|
176
|
+
case 'UnregisterWorker':
|
|
177
|
+
return handleUnregisterWorker(cmd, ctx, reqId);
|
|
178
|
+
case 'ListWorkers':
|
|
179
|
+
return handleListWorkers(cmd, ctx, reqId);
|
|
180
|
+
case 'AddWebhook':
|
|
181
|
+
return handleAddWebhook(cmd, ctx, reqId);
|
|
182
|
+
case 'RemoveWebhook':
|
|
183
|
+
return handleRemoveWebhook(cmd, ctx, reqId);
|
|
184
|
+
case 'ListWebhooks':
|
|
185
|
+
return handleListWebhooks(cmd, ctx, reqId);
|
|
186
|
+
default:
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=handlerRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlerRoutes.js","sourceRoot":"","sources":["../../../src/infrastructure/server/handlerRoutes.ts"],"names":[],"mappings":"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"}
|