@powerhousedao/reactor 5.0.0-staging.9 → 5.0.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.
- package/dist/src/cache/buffer/ring-buffer.d.ts +37 -0
- package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
- package/dist/src/cache/buffer/ring-buffer.js +69 -0
- package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
- package/dist/src/cache/kysely-write-cache.d.ts +133 -0
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
- package/dist/src/cache/kysely-write-cache.js +375 -0
- package/dist/src/cache/kysely-write-cache.js.map +1 -0
- package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
- package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
- package/dist/src/cache/lru/lru-tracker.js +96 -0
- package/dist/src/cache/lru/lru-tracker.js.map +1 -0
- package/dist/src/cache/types.d.ts +42 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +2 -0
- package/dist/src/cache/types.js.map +1 -0
- package/dist/src/cache/write/interfaces.d.ts +83 -0
- package/dist/src/cache/write/interfaces.d.ts.map +1 -0
- package/dist/src/cache/write/interfaces.js +2 -0
- package/dist/src/cache/write/interfaces.js.map +1 -0
- package/dist/src/client/reactor-client.d.ts +103 -0
- package/dist/src/client/reactor-client.d.ts.map +1 -0
- package/dist/src/client/reactor-client.js +184 -0
- package/dist/src/client/reactor-client.js.map +1 -0
- package/dist/src/client/types.d.ts +213 -0
- package/dist/src/client/types.d.ts.map +1 -0
- package/dist/src/client/types.js +14 -0
- package/dist/src/client/types.js.map +1 -0
- package/dist/src/core/builder.d.ts +20 -0
- package/dist/src/core/builder.d.ts.map +1 -0
- package/dist/src/core/builder.js +47 -0
- package/dist/src/core/builder.js.map +1 -0
- package/dist/src/{reactor.d.ts → core/reactor.d.ts} +14 -30
- package/dist/src/core/reactor.d.ts.map +1 -0
- package/dist/src/{reactor.js → core/reactor.js} +162 -114
- package/dist/src/core/reactor.js.map +1 -0
- package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/{utils.d.ts → core/utils.d.ts} +2 -2
- package/dist/src/core/utils.d.ts.map +1 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +2 -2
- package/dist/src/events/event-bus.d.ts.map +1 -1
- package/dist/src/events/event-bus.js +1 -1
- package/dist/src/events/event-bus.js.map +1 -1
- package/dist/src/events/interfaces.d.ts +1 -1
- package/dist/src/events/interfaces.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +14 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +6 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/executor/interfaces.d.ts +2 -2
- package/dist/src/executor/interfaces.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +6 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +121 -37
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +32 -3
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +451 -17
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/executor/types.d.ts +10 -3
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/types.js.map +1 -1
- package/dist/src/executor/util.d.ts +47 -0
- package/dist/src/executor/util.d.ts.map +1 -0
- package/dist/src/executor/util.js +113 -0
- package/dist/src/executor/util.js.map +1 -0
- package/dist/src/index.d.ts +23 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +30 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +16 -0
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
- package/dist/src/job-tracker/index.d.ts +3 -0
- package/dist/src/job-tracker/index.d.ts.map +1 -0
- package/dist/src/job-tracker/index.js +2 -0
- package/dist/src/job-tracker/index.js.map +1 -0
- package/dist/src/job-tracker/interfaces.d.ts +41 -0
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
- package/dist/src/job-tracker/interfaces.js +2 -0
- package/dist/src/job-tracker/interfaces.js.map +1 -0
- package/dist/src/queue/interfaces.d.ts +6 -5
- package/dist/src/queue/interfaces.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +5 -3
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.js +2 -2
- package/dist/src/queue/job-execution-handle.js.map +1 -1
- package/dist/src/queue/queue.d.ts +7 -5
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/queue.js +61 -27
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/types.d.ts +11 -8
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +38 -0
- package/dist/src/read-models/coordinator.d.ts.map +1 -0
- package/dist/src/read-models/coordinator.js +62 -0
- package/dist/src/read-models/coordinator.js.map +1 -0
- package/dist/src/read-models/document-view.d.ts +20 -0
- package/dist/src/read-models/document-view.d.ts.map +1 -0
- package/dist/src/read-models/document-view.js +365 -0
- package/dist/src/read-models/document-view.js.map +1 -0
- package/dist/src/read-models/interfaces.d.ts +29 -0
- package/dist/src/read-models/interfaces.d.ts.map +1 -0
- package/dist/src/read-models/interfaces.js +2 -0
- package/dist/src/read-models/interfaces.js.map +1 -0
- package/dist/src/read-models/types.d.ts +46 -0
- package/dist/src/read-models/types.d.ts.map +1 -0
- package/dist/src/read-models/types.js +2 -0
- package/dist/src/read-models/types.js.map +1 -0
- package/dist/src/registry/implementation.js +1 -1
- package/dist/src/registry/implementation.js.map +1 -1
- package/dist/src/shared/awaiter.d.ts +32 -0
- package/dist/src/shared/awaiter.d.ts.map +1 -0
- package/dist/src/shared/awaiter.js +132 -0
- package/dist/src/shared/awaiter.js.map +1 -0
- package/dist/src/shared/errors.d.ts +17 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +33 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/factories.d.ts +1 -1
- package/dist/src/shared/factories.d.ts.map +1 -1
- package/dist/src/shared/types.d.ts +17 -1
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +5 -0
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +6 -0
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
- package/dist/src/signer/passthrough-signer.js +6 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -0
- package/dist/src/signer/types.d.ts +15 -0
- package/dist/src/signer/types.d.ts.map +1 -0
- package/dist/src/signer/types.js +2 -0
- package/dist/src/signer/types.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +121 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +19 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.js +71 -0
- package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
- package/dist/src/storage/kysely/store.d.ts +15 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -0
- package/dist/src/storage/kysely/store.js +196 -0
- package/dist/src/storage/kysely/store.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +39 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.js +2 -0
- package/dist/src/storage/kysely/types.js.map +1 -0
- package/dist/src/storage/txn.d.ts +15 -0
- package/dist/src/storage/txn.d.ts.map +1 -0
- package/dist/src/storage/txn.js +41 -0
- package/dist/src/storage/txn.js.map +1 -0
- package/dist/src/subs/default-error-handler.d.ts +13 -0
- package/dist/src/subs/default-error-handler.d.ts.map +1 -0
- package/dist/src/subs/default-error-handler.js +27 -0
- package/dist/src/subs/default-error-handler.js.map +1 -0
- package/dist/src/subs/react-subscription-manager.d.ts +45 -0
- package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
- package/dist/src/subs/react-subscription-manager.js +185 -0
- package/dist/src/subs/react-subscription-manager.js.map +1 -0
- package/dist/src/subs/types.d.ts +64 -0
- package/dist/src/subs/types.d.ts.map +1 -0
- package/dist/src/subs/types.js +2 -0
- package/dist/src/subs/types.js.map +1 -0
- package/dist/src/utils/reshuffle.d.ts +30 -0
- package/dist/src/utils/reshuffle.d.ts.map +1 -0
- package/dist/src/utils/reshuffle.js +47 -0
- package/dist/src/utils/reshuffle.js.map +1 -0
- package/package.json +15 -9
- package/dist/bench/event-bus.bench.d.ts +0 -2
- package/dist/bench/event-bus.bench.d.ts.map +0 -1
- package/dist/bench/event-bus.bench.js +0 -228
- package/dist/bench/event-bus.bench.js.map +0 -1
- package/dist/bench/queue-only.bench.d.ts +0 -2
- package/dist/bench/queue-only.bench.d.ts.map +0 -1
- package/dist/bench/queue-only.bench.js +0 -46
- package/dist/bench/queue-only.bench.js.map +0 -1
- package/dist/bench/reactor-throughput.bench.d.ts +0 -2
- package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
- package/dist/bench/reactor-throughput.bench.js +0 -144
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/src/interfaces/reactor.d.ts.map +0 -1
- package/dist/src/interfaces/reactor.js +0 -2
- package/dist/src/interfaces/reactor.js.map +0 -1
- package/dist/src/reactor.d.ts.map +0 -1
- package/dist/src/reactor.js.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js.map +0 -1
- package/dist/test/event-bus.test.d.ts +0 -2
- package/dist/test/event-bus.test.d.ts.map +0 -1
- package/dist/test/event-bus.test.js +0 -541
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/executor/executor-integration.test.d.ts +0 -2
- package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
- package/dist/test/executor/executor-integration.test.js +0 -287
- package/dist/test/executor/executor-integration.test.js.map +0 -1
- package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
- package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
- package/dist/test/executor/job-execution-handle.test.js +0 -272
- package/dist/test/executor/job-execution-handle.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
- package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor.test.js +0 -139
- package/dist/test/executor/simple-job-executor.test.js.map +0 -1
- package/dist/test/factories.d.ts +0 -122
- package/dist/test/factories.d.ts.map +0 -1
- package/dist/test/factories.js +0 -319
- package/dist/test/factories.js.map +0 -1
- package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
- package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
- package/dist/test/integration/document-drive-integration.test.js +0 -1102
- package/dist/test/integration/document-drive-integration.test.js.map +0 -1
- package/dist/test/integration/reactor-read.test.d.ts +0 -2
- package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
- package/dist/test/integration/reactor-read.test.js +0 -300
- package/dist/test/integration/reactor-read.test.js.map +0 -1
- package/dist/test/queue/queue-integration.test.d.ts +0 -2
- package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
- package/dist/test/queue/queue-integration.test.js +0 -322
- package/dist/test/queue/queue-integration.test.js.map +0 -1
- package/dist/test/queue/queue.test.d.ts +0 -2
- package/dist/test/queue/queue.test.d.ts.map +0 -1
- package/dist/test/queue/queue.test.js +0 -770
- package/dist/test/queue/queue.test.js.map +0 -1
- package/dist/test/registry/registry.test.d.ts +0 -2
- package/dist/test/registry/registry.test.d.ts.map +0 -1
- package/dist/test/registry/registry.test.js +0 -182
- package/dist/test/registry/registry.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -66
- package/dist/test/utils.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -11
- package/dist/vitest.config.js.map +0 -1
- /package/dist/src/{utils.js → core/utils.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Job } from "../queue/types.js";
|
|
2
|
+
import type { ExecutorManagerStatus, JobResult } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Simple interface for executing a job.
|
|
5
5
|
* A JobExecutor simply takes a job and executes it - nothing more.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/executor/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,YAAY,IAAI,YAAY,EAAE,CAAC;IAE/B;;;;OAIG;IACH,SAAS,IAAI,qBAAqB,CAAC;CACpC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IEventBus } from "../events/interfaces.js";
|
|
2
|
+
import type { IJobTracker } from "../job-tracker/interfaces.js";
|
|
2
3
|
import type { IQueue } from "../queue/interfaces.js";
|
|
3
4
|
import type { IJobExecutor, IJobExecutorManager } from "./interfaces.js";
|
|
4
5
|
import type { ExecutorManagerStatus } from "./types.js";
|
|
@@ -11,17 +12,21 @@ export declare class SimpleJobExecutorManager implements IJobExecutorManager {
|
|
|
11
12
|
private executorFactory;
|
|
12
13
|
private eventBus;
|
|
13
14
|
private queue;
|
|
15
|
+
private jobTracker;
|
|
14
16
|
private executors;
|
|
15
17
|
private isRunning;
|
|
16
18
|
private activeJobs;
|
|
17
19
|
private totalJobsProcessed;
|
|
18
20
|
private unsubscribe?;
|
|
19
|
-
constructor(executorFactory: JobExecutorFactory, eventBus: IEventBus, queue: IQueue);
|
|
21
|
+
constructor(executorFactory: JobExecutorFactory, eventBus: IEventBus, queue: IQueue, jobTracker: IJobTracker);
|
|
20
22
|
start(numExecutors: number): Promise<void>;
|
|
21
23
|
stop(graceful?: boolean): Promise<void>;
|
|
22
24
|
getExecutors(): IJobExecutor[];
|
|
23
25
|
getStatus(): ExecutorManagerStatus;
|
|
24
26
|
private processNextJob;
|
|
27
|
+
private checkForMoreJobs;
|
|
25
28
|
private processExistingJobs;
|
|
29
|
+
private toErrorInfo;
|
|
30
|
+
private formatErrorHistory;
|
|
26
31
|
}
|
|
27
32
|
//# sourceMappingURL=simple-job-executor-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor-manager.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-job-executor-manager.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAa,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAQhE,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAVpB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAa;gBAGvB,eAAe,EAAE,kBAAkB,EACnC,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,WAAW;IAG3B,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC1C,IAAI,CAAC,QAAQ,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C,YAAY,IAAI,YAAY,EAAE;IAI9B,SAAS,IAAI,qBAAqB;YASpB,cAAc;YA0Fd,gBAAgB;YAkBhB,mBAAmB;IAwBjC,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;CAwB3B"}
|
|
@@ -7,15 +7,17 @@ export class SimpleJobExecutorManager {
|
|
|
7
7
|
executorFactory;
|
|
8
8
|
eventBus;
|
|
9
9
|
queue;
|
|
10
|
+
jobTracker;
|
|
10
11
|
executors = [];
|
|
11
12
|
isRunning = false;
|
|
12
13
|
activeJobs = 0;
|
|
13
14
|
totalJobsProcessed = 0;
|
|
14
15
|
unsubscribe;
|
|
15
|
-
constructor(executorFactory, eventBus, queue) {
|
|
16
|
+
constructor(executorFactory, eventBus, queue, jobTracker) {
|
|
16
17
|
this.executorFactory = executorFactory;
|
|
17
18
|
this.eventBus = eventBus;
|
|
18
19
|
this.queue = queue;
|
|
20
|
+
this.jobTracker = jobTracker;
|
|
19
21
|
}
|
|
20
22
|
async start(numExecutors) {
|
|
21
23
|
if (this.isRunning) {
|
|
@@ -70,59 +72,141 @@ export class SimpleJobExecutorManager {
|
|
|
70
72
|
};
|
|
71
73
|
}
|
|
72
74
|
async processNextJob() {
|
|
75
|
+
// dequeue next available job
|
|
76
|
+
let handle;
|
|
73
77
|
try {
|
|
74
|
-
|
|
75
|
-
const handle = await this.queue.dequeueNext();
|
|
76
|
-
if (!handle) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
this.activeJobs++;
|
|
80
|
-
// Find an available executor (simple round-robin)
|
|
81
|
-
const executorIndex = this.totalJobsProcessed % this.executors.length;
|
|
82
|
-
const executor = this.executors[executorIndex];
|
|
83
|
-
// Execute the job
|
|
84
|
-
const result = await executor.executeJob(handle.job);
|
|
85
|
-
// Update job status in queue
|
|
86
|
-
if (result.success) {
|
|
87
|
-
await this.queue.completeJob(handle.job.id);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
// Handle retry logic
|
|
91
|
-
const retryCount = handle.job.retryCount || 0;
|
|
92
|
-
const maxRetries = handle.job.maxRetries || 0;
|
|
93
|
-
if (retryCount < maxRetries) {
|
|
94
|
-
await this.queue.retryJob(handle.job.id, result.error?.message);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
await this.queue.failJob(handle.job.id, result.error?.message);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
this.totalJobsProcessed++;
|
|
78
|
+
handle = await this.queue.dequeueNext();
|
|
101
79
|
}
|
|
102
80
|
catch (error) {
|
|
103
|
-
console.error("Error
|
|
81
|
+
console.error("Error dequeueing job:", error);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (!handle) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// start the job execution
|
|
88
|
+
handle.start();
|
|
89
|
+
this.activeJobs++;
|
|
90
|
+
this.jobTracker.markRunning(handle.job.id);
|
|
91
|
+
// Find an available executor (simple round-robin)
|
|
92
|
+
const executorIndex = this.totalJobsProcessed % this.executors.length;
|
|
93
|
+
const executor = this.executors[executorIndex];
|
|
94
|
+
// execute the job
|
|
95
|
+
let result;
|
|
96
|
+
try {
|
|
97
|
+
result = await executor.executeJob(handle.job);
|
|
104
98
|
}
|
|
105
|
-
|
|
99
|
+
catch (error) {
|
|
100
|
+
const errorInfo = this.toErrorInfo(error instanceof Error ? error : String(error));
|
|
101
|
+
console.error(`Error executing job ${handle.job.id}:`, errorInfo.message);
|
|
102
|
+
handle.fail(errorInfo);
|
|
106
103
|
this.activeJobs--;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
this.jobTracker.markFailed(handle.job.id, errorInfo);
|
|
105
|
+
await this.checkForMoreJobs();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// handle the result
|
|
109
|
+
if (result.success) {
|
|
110
|
+
handle.complete();
|
|
111
|
+
this.totalJobsProcessed++;
|
|
112
|
+
this.jobTracker.markCompleted(handle.job.id, result.operations);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// Handle retry logic
|
|
116
|
+
const retryCount = handle.job.retryCount || 0;
|
|
117
|
+
const maxRetries = handle.job.maxRetries || 0;
|
|
118
|
+
if (retryCount < maxRetries) {
|
|
119
|
+
const currentErrorInfo = result.error
|
|
120
|
+
? this.toErrorInfo(result.error)
|
|
121
|
+
: this.toErrorInfo("Unknown error");
|
|
122
|
+
try {
|
|
123
|
+
await this.queue.retryJob(handle.job.id, currentErrorInfo);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
const retryErrorInfo = this.toErrorInfo(error instanceof Error ? error : "Failed to retry job");
|
|
127
|
+
console.error(`Failed to retry job ${handle.job.id}:`, retryErrorInfo.message);
|
|
128
|
+
this.jobTracker.markFailed(handle.job.id, retryErrorInfo);
|
|
129
|
+
handle.fail(retryErrorInfo);
|
|
112
130
|
}
|
|
113
131
|
}
|
|
132
|
+
else {
|
|
133
|
+
const currentErrorInfo = result.error
|
|
134
|
+
? this.toErrorInfo(result.error)
|
|
135
|
+
: this.toErrorInfo("Unknown error");
|
|
136
|
+
const fullErrorInfo = this.formatErrorHistory(handle.job.errorHistory, currentErrorInfo, retryCount + 1);
|
|
137
|
+
this.jobTracker.markFailed(handle.job.id, fullErrorInfo);
|
|
138
|
+
handle.fail(fullErrorInfo);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
this.activeJobs--;
|
|
142
|
+
await this.checkForMoreJobs();
|
|
143
|
+
}
|
|
144
|
+
async checkForMoreJobs() {
|
|
145
|
+
if (!this.isRunning) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
let hasMore;
|
|
149
|
+
try {
|
|
150
|
+
hasMore = await this.queue.hasJobs();
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error("Error checking for more jobs:", error);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (hasMore) {
|
|
157
|
+
await this.processNextJob();
|
|
114
158
|
}
|
|
115
159
|
}
|
|
116
160
|
async processExistingJobs() {
|
|
117
|
-
|
|
161
|
+
let hasJobs;
|
|
162
|
+
try {
|
|
163
|
+
hasJobs = await this.queue.hasJobs();
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.error("Error checking for existing jobs:", error);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
118
169
|
if (hasJobs) {
|
|
119
170
|
// Start processing up to the number of executors
|
|
120
171
|
const promises = [];
|
|
121
172
|
for (let i = 0; i < Math.min(this.executors.length, 5); i++) {
|
|
122
173
|
promises.push(this.processNextJob());
|
|
123
174
|
}
|
|
124
|
-
|
|
175
|
+
try {
|
|
176
|
+
await Promise.all(promises);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
console.error("Error processing existing jobs:", error);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
toErrorInfo(error) {
|
|
184
|
+
if (error instanceof Error) {
|
|
185
|
+
return {
|
|
186
|
+
message: error.message,
|
|
187
|
+
stack: error.stack || new Error().stack || "",
|
|
188
|
+
};
|
|
125
189
|
}
|
|
190
|
+
return {
|
|
191
|
+
message: error,
|
|
192
|
+
stack: new Error().stack || "",
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
formatErrorHistory(errorHistory, currentError, totalAttempts) {
|
|
196
|
+
const allErrors = [...errorHistory, currentError];
|
|
197
|
+
if (allErrors.length === 1) {
|
|
198
|
+
return currentError;
|
|
199
|
+
}
|
|
200
|
+
const messageLines = [`Job failed after ${totalAttempts} attempts:`];
|
|
201
|
+
const stackLines = [];
|
|
202
|
+
allErrors.forEach((error, index) => {
|
|
203
|
+
messageLines.push(`[Attempt ${index + 1}] ${error.message}`);
|
|
204
|
+
stackLines.push(`[Attempt ${index + 1}] Stack trace:\n${error.stack}`);
|
|
205
|
+
});
|
|
206
|
+
return {
|
|
207
|
+
message: messageLines.join("\n"),
|
|
208
|
+
stack: stackLines.join("\n\n"),
|
|
209
|
+
};
|
|
126
210
|
}
|
|
127
211
|
}
|
|
128
212
|
//# sourceMappingURL=simple-job-executor-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor-manager.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"simple-job-executor-manager.js","sourceRoot":"","sources":["../../../src/executor/simple-job-executor-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,48 @@
|
|
|
1
|
-
import type { IDocumentOperationStorage, IDocumentStorage } from "document-drive
|
|
1
|
+
import type { IDocumentOperationStorage, IDocumentStorage } from "document-drive";
|
|
2
|
+
import type { IWriteCache } from "../cache/write/interfaces.js";
|
|
3
|
+
import type { IEventBus } from "../events/interfaces.js";
|
|
2
4
|
import type { Job } from "../queue/types.js";
|
|
3
5
|
import type { IDocumentModelRegistry } from "../registry/interfaces.js";
|
|
6
|
+
import type { IOperationStore } from "../storage/interfaces.js";
|
|
4
7
|
import type { IJobExecutor } from "./interfaces.js";
|
|
5
8
|
import type { JobResult } from "./types.js";
|
|
6
9
|
/**
|
|
7
10
|
* Simple job executor that processes a job by applying actions through document model reducers.
|
|
11
|
+
*
|
|
12
|
+
* @see docs/planning/Storage/IOperationStore.md for storage schema
|
|
13
|
+
* @see docs/planning/Operations/index.md for operation structure
|
|
14
|
+
* @see docs/planning/Jobs/reshuffle.md for skip mechanism details
|
|
8
15
|
*/
|
|
9
16
|
export declare class SimpleJobExecutor implements IJobExecutor {
|
|
10
17
|
private registry;
|
|
11
18
|
private documentStorage;
|
|
12
19
|
private operationStorage;
|
|
13
|
-
|
|
20
|
+
private operationStore;
|
|
21
|
+
private eventBus;
|
|
22
|
+
private writeCache;
|
|
23
|
+
constructor(registry: IDocumentModelRegistry, documentStorage: IDocumentStorage, operationStorage: IDocumentOperationStorage, operationStore: IOperationStore, eventBus: IEventBus, writeCache: IWriteCache);
|
|
14
24
|
/**
|
|
15
|
-
* Execute a single job by applying its
|
|
25
|
+
* Execute a single job by applying all its actions through the appropriate reducers.
|
|
26
|
+
* Actions are processed sequentially in order.
|
|
16
27
|
*/
|
|
17
28
|
executeJob(job: Job): Promise<JobResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Execute a CREATE_DOCUMENT system action.
|
|
31
|
+
* This creates a new document in storage along with its initial operation.
|
|
32
|
+
* For a new document, the operation index is always 0.
|
|
33
|
+
*/
|
|
34
|
+
private executeCreateDocumentAction;
|
|
35
|
+
/**
|
|
36
|
+
* Execute a DELETE_DOCUMENT system action.
|
|
37
|
+
* This deletes a document from legacy storage and writes the operation to IOperationStore.
|
|
38
|
+
* The operation index is determined from the document's current operation count.
|
|
39
|
+
*/
|
|
40
|
+
private executeDeleteDocumentAction;
|
|
41
|
+
/**
|
|
42
|
+
* Execute an UPGRADE_DOCUMENT system action.
|
|
43
|
+
* This sets the document's initial state from the upgrade action.
|
|
44
|
+
* The operation index is determined from the document's current operation count.
|
|
45
|
+
*/
|
|
46
|
+
private executeUpgradeDocumentAction;
|
|
18
47
|
}
|
|
19
48
|
//# sourceMappingURL=simple-job-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-job-executor.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-job-executor.d.ts","sourceRoot":"","sources":["../../../src/executor/simple-job-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAUxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAElD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;gBALV,QAAQ,EAAE,sBAAsB,EAChC,eAAe,EAAE,gBAAgB,EACjC,gBAAgB,EAAE,yBAAyB,EAC3C,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,WAAW;IAGjC;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAyN9C;;;;OAIG;YACW,2BAA2B;IAyIzC;;;;OAIG;YACW,2BAA2B;IAgJzC;;;;OAIG;YACW,4BAA4B;CAmK3C"}
|