@powerhousedao/reactor 4.1.0-dev.11 → 4.1.0-dev.111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/dist/src/cache/buffer/ring-buffer.d.ts +37 -0
  2. package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
  3. package/dist/src/cache/buffer/ring-buffer.js +69 -0
  4. package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
  5. package/dist/src/cache/index.d.ts +3 -0
  6. package/dist/src/cache/index.d.ts.map +1 -0
  7. package/dist/src/cache/index.js +2 -0
  8. package/dist/src/cache/index.js.map +1 -0
  9. package/dist/src/cache/kysely-operation-index.d.ts +13 -0
  10. package/dist/src/cache/kysely-operation-index.d.ts.map +1 -0
  11. package/dist/src/cache/kysely-operation-index.js +152 -0
  12. package/dist/src/cache/kysely-operation-index.js.map +1 -0
  13. package/dist/src/cache/kysely-write-cache.d.ts +134 -0
  14. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
  15. package/dist/src/cache/kysely-write-cache.js +375 -0
  16. package/dist/src/cache/kysely-write-cache.js.map +1 -0
  17. package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
  18. package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
  19. package/dist/src/cache/lru/lru-tracker.js +96 -0
  20. package/dist/src/cache/lru/lru-tracker.js.map +1 -0
  21. package/dist/src/cache/operation-index-types.d.ts +46 -0
  22. package/dist/src/cache/operation-index-types.d.ts.map +1 -0
  23. package/dist/src/cache/operation-index-types.js +4 -0
  24. package/dist/src/cache/operation-index-types.js.map +1 -0
  25. package/dist/src/cache/write/interfaces.d.ts +83 -0
  26. package/dist/src/cache/write/interfaces.d.ts.map +1 -0
  27. package/dist/src/cache/write/interfaces.js +2 -0
  28. package/dist/src/cache/write/interfaces.js.map +1 -0
  29. package/dist/src/cache/write-cache-types.d.ts +42 -0
  30. package/dist/src/cache/write-cache-types.d.ts.map +1 -0
  31. package/dist/src/cache/write-cache-types.js +2 -0
  32. package/dist/src/cache/write-cache-types.js.map +1 -0
  33. package/dist/src/client/reactor-client.d.ts +103 -0
  34. package/dist/src/client/reactor-client.d.ts.map +1 -0
  35. package/dist/src/client/reactor-client.js +184 -0
  36. package/dist/src/client/reactor-client.js.map +1 -0
  37. package/dist/src/client/types.d.ts +213 -0
  38. package/dist/src/client/types.d.ts.map +1 -0
  39. package/dist/src/client/types.js +14 -0
  40. package/dist/src/client/types.js.map +1 -0
  41. package/dist/src/core/builder.d.ts +20 -0
  42. package/dist/src/core/builder.d.ts.map +1 -0
  43. package/dist/src/core/builder.js +47 -0
  44. package/dist/src/core/builder.js.map +1 -0
  45. package/dist/src/core/reactor-builder.d.ts +32 -0
  46. package/dist/src/core/reactor-builder.d.ts.map +1 -0
  47. package/dist/src/core/reactor-builder.js +122 -0
  48. package/dist/src/core/reactor-builder.js.map +1 -0
  49. package/dist/src/core/reactor.d.ts +107 -0
  50. package/dist/src/core/reactor.d.ts.map +1 -0
  51. package/dist/src/core/reactor.js +989 -0
  52. package/dist/src/core/reactor.js.map +1 -0
  53. package/dist/src/core/types.d.ts +178 -0
  54. package/dist/src/core/types.d.ts.map +1 -0
  55. package/dist/src/core/types.js +2 -0
  56. package/dist/src/core/types.js.map +1 -0
  57. package/dist/src/core/utils.d.ts +55 -0
  58. package/dist/src/core/utils.d.ts.map +1 -0
  59. package/dist/src/core/utils.js +150 -0
  60. package/dist/src/core/utils.js.map +1 -0
  61. package/dist/src/events/event-bus.d.ts +3 -3
  62. package/dist/src/events/event-bus.d.ts.map +1 -1
  63. package/dist/src/events/event-bus.js.map +1 -1
  64. package/dist/src/events/interfaces.d.ts +1 -1
  65. package/dist/src/events/interfaces.d.ts.map +1 -1
  66. package/dist/src/events/types.d.ts +15 -1
  67. package/dist/src/events/types.d.ts.map +1 -1
  68. package/dist/src/events/types.js +6 -0
  69. package/dist/src/events/types.js.map +1 -1
  70. package/dist/src/executor/interfaces.d.ts +31 -54
  71. package/dist/src/executor/interfaces.d.ts.map +1 -1
  72. package/dist/src/executor/simple-job-executor-manager.d.ts +32 -0
  73. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -0
  74. package/dist/src/executor/simple-job-executor-manager.js +214 -0
  75. package/dist/src/executor/simple-job-executor-manager.js.map +1 -0
  76. package/dist/src/executor/simple-job-executor.d.ts +62 -0
  77. package/dist/src/executor/simple-job-executor.d.ts.map +1 -0
  78. package/dist/src/executor/simple-job-executor.js +685 -0
  79. package/dist/src/executor/simple-job-executor.js.map +1 -0
  80. package/dist/src/executor/types.d.ts +32 -8
  81. package/dist/src/executor/types.d.ts.map +1 -1
  82. package/dist/src/executor/types.js.map +1 -1
  83. package/dist/src/executor/util.d.ts +65 -0
  84. package/dist/src/executor/util.d.ts.map +1 -0
  85. package/dist/src/executor/util.js +154 -0
  86. package/dist/src/executor/util.js.map +1 -0
  87. package/dist/src/index.d.ts +33 -3
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/index.js +40 -2
  90. package/dist/src/index.js.map +1 -1
  91. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +16 -0
  92. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
  93. package/dist/src/job-tracker/in-memory-job-tracker.js +84 -0
  94. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
  95. package/dist/src/job-tracker/index.d.ts +3 -0
  96. package/dist/src/job-tracker/index.d.ts.map +1 -0
  97. package/dist/src/job-tracker/index.js +2 -0
  98. package/dist/src/job-tracker/index.js.map +1 -0
  99. package/dist/src/job-tracker/interfaces.d.ts +42 -0
  100. package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
  101. package/dist/src/job-tracker/interfaces.js +2 -0
  102. package/dist/src/job-tracker/interfaces.js.map +1 -0
  103. package/dist/src/queue/interfaces.d.ts +46 -5
  104. package/dist/src/queue/interfaces.d.ts.map +1 -1
  105. package/dist/src/queue/job-execution-handle.d.ts +25 -0
  106. package/dist/src/queue/job-execution-handle.d.ts.map +1 -0
  107. package/dist/src/queue/job-execution-handle.js +62 -0
  108. package/dist/src/queue/job-execution-handle.js.map +1 -0
  109. package/dist/src/queue/queue.d.ts +56 -5
  110. package/dist/src/queue/queue.d.ts.map +1 -1
  111. package/dist/src/queue/queue.js +284 -36
  112. package/dist/src/queue/queue.js.map +1 -1
  113. package/dist/src/queue/types.d.ts +38 -5
  114. package/dist/src/queue/types.d.ts.map +1 -1
  115. package/dist/src/queue/types.js +12 -0
  116. package/dist/src/queue/types.js.map +1 -1
  117. package/dist/src/read-models/coordinator.d.ts +38 -0
  118. package/dist/src/read-models/coordinator.d.ts.map +1 -0
  119. package/dist/src/read-models/coordinator.js +62 -0
  120. package/dist/src/read-models/coordinator.js.map +1 -0
  121. package/dist/src/read-models/document-view.d.ts +24 -0
  122. package/dist/src/read-models/document-view.d.ts.map +1 -0
  123. package/dist/src/read-models/document-view.js +368 -0
  124. package/dist/src/read-models/document-view.js.map +1 -0
  125. package/dist/src/read-models/interfaces.d.ts +29 -0
  126. package/dist/src/read-models/interfaces.d.ts.map +1 -0
  127. package/dist/src/read-models/interfaces.js +2 -0
  128. package/dist/src/read-models/interfaces.js.map +1 -0
  129. package/dist/src/read-models/types.d.ts +46 -0
  130. package/dist/src/read-models/types.d.ts.map +1 -0
  131. package/dist/src/read-models/types.js +2 -0
  132. package/dist/src/read-models/types.js.map +1 -0
  133. package/dist/src/registry/implementation.d.ts +62 -0
  134. package/dist/src/registry/implementation.d.ts.map +1 -0
  135. package/dist/src/registry/implementation.js +96 -0
  136. package/dist/src/registry/implementation.js.map +1 -0
  137. package/dist/src/registry/index.d.ts +3 -0
  138. package/dist/src/registry/index.d.ts.map +1 -0
  139. package/dist/src/registry/index.js +2 -0
  140. package/dist/src/registry/index.js.map +1 -0
  141. package/dist/src/registry/interfaces.d.ts +39 -0
  142. package/dist/src/registry/interfaces.d.ts.map +1 -0
  143. package/dist/src/registry/interfaces.js +2 -0
  144. package/dist/src/registry/interfaces.js.map +1 -0
  145. package/dist/src/shared/awaiter.d.ts +32 -0
  146. package/dist/src/shared/awaiter.d.ts.map +1 -0
  147. package/dist/src/shared/awaiter.js +132 -0
  148. package/dist/src/shared/awaiter.js.map +1 -0
  149. package/dist/src/shared/consistency-tracker.d.ts +48 -0
  150. package/dist/src/shared/consistency-tracker.d.ts.map +1 -0
  151. package/dist/src/shared/consistency-tracker.js +123 -0
  152. package/dist/src/shared/consistency-tracker.js.map +1 -0
  153. package/dist/src/shared/errors.d.ts +17 -0
  154. package/dist/src/shared/errors.d.ts.map +1 -0
  155. package/dist/src/shared/errors.js +33 -0
  156. package/dist/src/shared/errors.js.map +1 -0
  157. package/dist/src/shared/factories.d.ts +16 -0
  158. package/dist/src/shared/factories.d.ts.map +1 -0
  159. package/dist/src/shared/factories.js +33 -0
  160. package/dist/src/shared/factories.js.map +1 -0
  161. package/dist/src/shared/types.d.ts +126 -20
  162. package/dist/src/shared/types.d.ts.map +1 -1
  163. package/dist/src/shared/types.js +35 -1
  164. package/dist/src/shared/types.js.map +1 -1
  165. package/dist/src/shared/utils.d.ts +3 -0
  166. package/dist/src/shared/utils.d.ts.map +1 -0
  167. package/dist/src/shared/utils.js +8 -0
  168. package/dist/src/shared/utils.js.map +1 -0
  169. package/dist/src/signer/passthrough-signer.d.ts +6 -0
  170. package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
  171. package/dist/src/signer/passthrough-signer.js +6 -0
  172. package/dist/src/signer/passthrough-signer.js.map +1 -0
  173. package/dist/src/signer/types.d.ts +15 -0
  174. package/dist/src/signer/types.d.ts.map +1 -0
  175. package/dist/src/signer/types.js +2 -0
  176. package/dist/src/signer/types.js.map +1 -0
  177. package/dist/src/storage/interfaces.d.ts +267 -0
  178. package/dist/src/storage/interfaces.d.ts.map +1 -0
  179. package/dist/src/storage/interfaces.js +19 -0
  180. package/dist/src/storage/interfaces.js.map +1 -0
  181. package/dist/src/storage/kysely/document-indexer.d.ts +28 -0
  182. package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -0
  183. package/dist/src/storage/kysely/document-indexer.js +350 -0
  184. package/dist/src/storage/kysely/document-indexer.js.map +1 -0
  185. package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
  186. package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
  187. package/dist/src/storage/kysely/keyframe-store.js +64 -0
  188. package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
  189. package/dist/src/storage/kysely/store.d.ts +15 -0
  190. package/dist/src/storage/kysely/store.d.ts.map +1 -0
  191. package/dist/src/storage/kysely/store.js +196 -0
  192. package/dist/src/storage/kysely/store.js.map +1 -0
  193. package/dist/src/storage/kysely/types.d.ts +98 -0
  194. package/dist/src/storage/kysely/types.d.ts.map +1 -0
  195. package/dist/src/storage/kysely/types.js +2 -0
  196. package/dist/src/storage/kysely/types.js.map +1 -0
  197. package/dist/src/storage/migrations/001_create_operation_table.d.ts +3 -0
  198. package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +1 -0
  199. package/dist/src/storage/migrations/001_create_operation_table.js +40 -0
  200. package/dist/src/storage/migrations/001_create_operation_table.js.map +1 -0
  201. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts +3 -0
  202. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.map +1 -0
  203. package/dist/src/storage/migrations/002_create_keyframe_table.js +27 -0
  204. package/dist/src/storage/migrations/002_create_keyframe_table.js.map +1 -0
  205. package/dist/src/storage/migrations/003_create_document_table.d.ts +3 -0
  206. package/dist/src/storage/migrations/003_create_document_table.d.ts.map +1 -0
  207. package/dist/src/storage/migrations/003_create_document_table.js +10 -0
  208. package/dist/src/storage/migrations/003_create_document_table.js.map +1 -0
  209. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts +3 -0
  210. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.map +1 -0
  211. package/dist/src/storage/migrations/004_create_document_relationship_table.js +35 -0
  212. package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +1 -0
  213. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts +3 -0
  214. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.map +1 -0
  215. package/dist/src/storage/migrations/005_create_indexer_state_table.js +10 -0
  216. package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +1 -0
  217. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts +3 -0
  218. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.map +1 -0
  219. package/dist/src/storage/migrations/006_create_document_snapshot_table.js +49 -0
  220. package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +1 -0
  221. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts +3 -0
  222. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.map +1 -0
  223. package/dist/src/storage/migrations/007_create_slug_mapping_table.js +24 -0
  224. package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +1 -0
  225. package/dist/src/storage/migrations/008_create_view_state_table.d.ts +3 -0
  226. package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +1 -0
  227. package/dist/src/storage/migrations/008_create_view_state_table.js +9 -0
  228. package/dist/src/storage/migrations/008_create_view_state_table.js.map +1 -0
  229. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts +3 -0
  230. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.map +1 -0
  231. package/dist/src/storage/migrations/009_create_operation_index_tables.js +43 -0
  232. package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +1 -0
  233. package/dist/src/storage/migrations/index.d.ts +3 -0
  234. package/dist/src/storage/migrations/index.d.ts.map +1 -0
  235. package/dist/src/storage/migrations/index.js +3 -0
  236. package/dist/src/storage/migrations/index.js.map +1 -0
  237. package/dist/src/storage/migrations/migrator.d.ts +5 -0
  238. package/dist/src/storage/migrations/migrator.d.ts.map +1 -0
  239. package/dist/src/storage/migrations/migrator.js +53 -0
  240. package/dist/src/storage/migrations/migrator.js.map +1 -0
  241. package/dist/src/storage/migrations/run-migrations.d.ts +2 -0
  242. package/dist/src/storage/migrations/run-migrations.d.ts.map +1 -0
  243. package/dist/src/storage/migrations/run-migrations.js +58 -0
  244. package/dist/src/storage/migrations/run-migrations.js.map +1 -0
  245. package/dist/src/storage/migrations/types.d.ts +9 -0
  246. package/dist/src/storage/migrations/types.d.ts.map +1 -0
  247. package/dist/src/storage/migrations/types.js +2 -0
  248. package/dist/src/storage/migrations/types.js.map +1 -0
  249. package/dist/src/storage/txn.d.ts +15 -0
  250. package/dist/src/storage/txn.d.ts.map +1 -0
  251. package/dist/src/storage/txn.js +43 -0
  252. package/dist/src/storage/txn.js.map +1 -0
  253. package/dist/src/subs/default-error-handler.d.ts +13 -0
  254. package/dist/src/subs/default-error-handler.d.ts.map +1 -0
  255. package/dist/src/subs/default-error-handler.js +27 -0
  256. package/dist/src/subs/default-error-handler.js.map +1 -0
  257. package/dist/src/subs/react-subscription-manager.d.ts +45 -0
  258. package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
  259. package/dist/src/subs/react-subscription-manager.js +185 -0
  260. package/dist/src/subs/react-subscription-manager.js.map +1 -0
  261. package/dist/src/subs/types.d.ts +64 -0
  262. package/dist/src/subs/types.d.ts.map +1 -0
  263. package/dist/src/subs/types.js +2 -0
  264. package/dist/src/subs/types.js.map +1 -0
  265. package/dist/src/utils/reshuffle.d.ts +30 -0
  266. package/dist/src/utils/reshuffle.d.ts.map +1 -0
  267. package/dist/src/utils/reshuffle.js +47 -0
  268. package/dist/src/utils/reshuffle.js.map +1 -0
  269. package/package.json +21 -7
  270. package/dist/bench/end-to-end-flow.bench.d.ts +0 -2
  271. package/dist/bench/end-to-end-flow.bench.d.ts.map +0 -1
  272. package/dist/bench/end-to-end-flow.bench.js +0 -256
  273. package/dist/bench/end-to-end-flow.bench.js.map +0 -1
  274. package/dist/bench/event-bus.bench.d.ts +0 -2
  275. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  276. package/dist/bench/event-bus.bench.js +0 -238
  277. package/dist/bench/event-bus.bench.js.map +0 -1
  278. package/dist/bench/queue-only.bench.d.ts +0 -2
  279. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  280. package/dist/bench/queue-only.bench.js +0 -40
  281. package/dist/bench/queue-only.bench.js.map +0 -1
  282. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  283. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  284. package/dist/bench/reactor-throughput.bench.js +0 -137
  285. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  286. package/dist/src/executor/job-executor.d.ts +0 -62
  287. package/dist/src/executor/job-executor.d.ts.map +0 -1
  288. package/dist/src/executor/job-executor.js +0 -325
  289. package/dist/src/executor/job-executor.js.map +0 -1
  290. package/dist/test/event-bus.test.d.ts +0 -2
  291. package/dist/test/event-bus.test.d.ts.map +0 -1
  292. package/dist/test/event-bus.test.js +0 -532
  293. package/dist/test/event-bus.test.js.map +0 -1
  294. package/dist/test/job-executor.test.d.ts +0 -2
  295. package/dist/test/job-executor.test.d.ts.map +0 -1
  296. package/dist/test/job-executor.test.js +0 -581
  297. package/dist/test/job-executor.test.js.map +0 -1
  298. package/dist/test/queue.test.d.ts +0 -2
  299. package/dist/test/queue.test.d.ts.map +0 -1
  300. package/dist/test/queue.test.js +0 -396
  301. package/dist/test/queue.test.js.map +0 -1
  302. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,325 +0,0 @@
1
- import { QueueEventTypes, } from "../queue/types.js";
2
- import { JobExecutorEventTypes, } from "./types.js";
3
- /**
4
- * Default configuration for the job executor
5
- */
6
- const DEFAULT_CONFIG = {
7
- maxConcurrency: 5,
8
- jobTimeout: 30000, // 30 seconds
9
- retryBaseDelay: 1000, // 1 second
10
- retryMaxDelay: 30000, // 30 seconds
11
- };
12
- /**
13
- * In-memory implementation of the IJobExecutor interface.
14
- * Listens for job available events and executes jobs with concurrency control and retry logic.
15
- */
16
- export class InMemoryJobExecutor {
17
- eventBus;
18
- queue;
19
- isRunning = false;
20
- isPaused = false;
21
- config = DEFAULT_CONFIG;
22
- activeJobs = new Set();
23
- jobAvailableUnsubscribe;
24
- startedAt;
25
- // Statistics
26
- totalJobsProcessed = 0;
27
- totalJobsSucceeded = 0;
28
- totalJobsFailed = 0;
29
- lastJobCompletedAt;
30
- executionTimes = [];
31
- // Job execution tracking
32
- jobPromises = new Map();
33
- abortControllers = new Map();
34
- constructor(eventBus, queue) {
35
- this.eventBus = eventBus;
36
- this.queue = queue;
37
- }
38
- async start(config) {
39
- if (this.isRunning) {
40
- throw new Error("Job executor is already running");
41
- }
42
- this.config = { ...DEFAULT_CONFIG, ...config };
43
- this.isRunning = true;
44
- this.isPaused = false;
45
- this.startedAt = new Date();
46
- // Subscribe to job available events
47
- this.jobAvailableUnsubscribe = this.eventBus.subscribe(QueueEventTypes.JOB_AVAILABLE, this.handleJobAvailable.bind(this));
48
- // Emit executor started event
49
- const startedEvent = {
50
- config: this.config,
51
- startedAt: this.startedAt.toISOString(),
52
- };
53
- await this.eventBus.emit(JobExecutorEventTypes.EXECUTOR_STARTED, startedEvent);
54
- // Check for existing jobs in the queue
55
- await this.processAvailableJobs();
56
- }
57
- async stop(graceful = true) {
58
- if (!this.isRunning) {
59
- return;
60
- }
61
- this.isRunning = false;
62
- // Unsubscribe from job available events
63
- if (this.jobAvailableUnsubscribe) {
64
- this.jobAvailableUnsubscribe();
65
- this.jobAvailableUnsubscribe = undefined;
66
- }
67
- if (graceful) {
68
- // Wait for all active jobs to complete
69
- await Promise.allSettled(Array.from(this.jobPromises.values()));
70
- }
71
- else {
72
- // Abort all active jobs
73
- for (const controller of this.abortControllers.values()) {
74
- controller.abort();
75
- }
76
- }
77
- // Clean up
78
- this.activeJobs.clear();
79
- this.jobPromises.clear();
80
- this.abortControllers.clear();
81
- // Emit executor stopped event
82
- const stoppedEvent = {
83
- stoppedAt: new Date().toISOString(),
84
- graceful,
85
- };
86
- await this.eventBus.emit(JobExecutorEventTypes.EXECUTOR_STOPPED, stoppedEvent);
87
- }
88
- async executeJob(job) {
89
- return this.executeJobInternal(job);
90
- }
91
- async getStatus() {
92
- const uptime = this.startedAt
93
- ? Date.now() - this.startedAt.getTime()
94
- : undefined;
95
- return {
96
- isRunning: this.isRunning,
97
- activeJobs: this.activeJobs.size,
98
- totalJobsProcessed: this.totalJobsProcessed,
99
- totalJobsSucceeded: this.totalJobsSucceeded,
100
- totalJobsFailed: this.totalJobsFailed,
101
- lastJobCompletedAt: this.lastJobCompletedAt,
102
- uptime,
103
- };
104
- }
105
- async getStats() {
106
- const averageExecutionTime = this.executionTimes.length > 0
107
- ? this.executionTimes.reduce((sum, time) => sum + time, 0) /
108
- this.executionTimes.length
109
- : 0;
110
- const successRate = this.totalJobsProcessed > 0
111
- ? this.totalJobsSucceeded / this.totalJobsProcessed
112
- : 0;
113
- const uptime = this.startedAt
114
- ? (Date.now() - this.startedAt.getTime()) / 1000
115
- : 0;
116
- const jobsPerSecond = uptime > 0 ? this.totalJobsProcessed / uptime : 0;
117
- const queueBacklog = await this.queue.totalSize();
118
- return {
119
- averageExecutionTime,
120
- successRate,
121
- jobsPerSecond,
122
- queueBacklog,
123
- };
124
- }
125
- async pause() {
126
- this.isPaused = true;
127
- }
128
- async resume() {
129
- this.isPaused = false;
130
- // Process any available jobs
131
- await this.processAvailableJobs();
132
- }
133
- on(event, handler) {
134
- const eventType = this.getEventType(event);
135
- return this.eventBus.subscribe(eventType, (_, data) => handler(data));
136
- }
137
- getEventType(event) {
138
- switch (event) {
139
- case "jobStarted":
140
- return JobExecutorEventTypes.JOB_STARTED;
141
- case "jobCompleted":
142
- return JobExecutorEventTypes.JOB_COMPLETED;
143
- case "jobFailed":
144
- return JobExecutorEventTypes.JOB_FAILED;
145
- case "executorStarted":
146
- return JobExecutorEventTypes.EXECUTOR_STARTED;
147
- case "executorStopped":
148
- return JobExecutorEventTypes.EXECUTOR_STOPPED;
149
- default:
150
- throw new Error(`Unknown event type: ${event}`);
151
- }
152
- }
153
- async handleJobAvailable(_, event) {
154
- if (!this.isRunning || this.isPaused) {
155
- return;
156
- }
157
- await this.processAvailableJobs();
158
- }
159
- async processAvailableJobs() {
160
- if (!this.isRunning || this.isPaused) {
161
- return;
162
- }
163
- // Check if we have capacity for more jobs
164
- while (this.activeJobs.size < this.config.maxConcurrency) {
165
- const job = await this.queue.dequeueNext();
166
- if (!job) {
167
- break; // No more jobs available
168
- }
169
- // Start executing the job (don't await - run concurrently)
170
- const jobPromise = this.executeJobWithRetry(job);
171
- this.jobPromises.set(job.id, jobPromise);
172
- // Handle job completion asynchronously
173
- jobPromise.finally(() => {
174
- this.jobPromises.delete(job.id);
175
- // Try to process more jobs when this one completes
176
- this.processAvailableJobs().catch(console.error);
177
- });
178
- }
179
- }
180
- async executeJobWithRetry(job) {
181
- let lastResult;
182
- do {
183
- lastResult = await this.executeJobInternal(job);
184
- if (lastResult.success) {
185
- return lastResult;
186
- }
187
- // Check if we should retry before incrementing
188
- if (!this.shouldRetryJob(job)) {
189
- return lastResult;
190
- }
191
- // Increment retry count after deciding to retry
192
- job.retryCount = (job.retryCount || 0) + 1;
193
- // Wait before retrying
194
- const delay = this.calculateRetryDelay(job.retryCount);
195
- await this.sleep(delay);
196
- } while (true); // We'll break out when shouldRetryJob returns false
197
- }
198
- async executeJobInternal(job) {
199
- const startTime = Date.now();
200
- const abortController = new AbortController();
201
- try {
202
- // Track the job
203
- this.activeJobs.add(job.id);
204
- this.abortControllers.set(job.id, abortController);
205
- // Emit job started event
206
- const startedEvent = {
207
- job,
208
- startedAt: new Date().toISOString(),
209
- };
210
- await this.eventBus.emit(JobExecutorEventTypes.JOB_STARTED, startedEvent);
211
- // Execute the job with timeout
212
- const result = await this.executeJobWithTimeout(job, abortController.signal);
213
- const endTime = Date.now();
214
- const duration = endTime - startTime;
215
- // Update statistics
216
- this.totalJobsProcessed++;
217
- this.totalJobsSucceeded++;
218
- this.lastJobCompletedAt = new Date().toISOString();
219
- this.executionTimes.push(duration);
220
- // Keep only last 1000 execution times for average calculation
221
- if (this.executionTimes.length > 1000) {
222
- this.executionTimes = this.executionTimes.slice(-1000);
223
- }
224
- const jobResult = {
225
- job,
226
- success: true,
227
- completedAt: this.lastJobCompletedAt,
228
- duration,
229
- metadata: result.metadata,
230
- };
231
- // Emit job completed event
232
- const completedEvent = {
233
- job,
234
- result: jobResult,
235
- };
236
- await this.eventBus.emit(JobExecutorEventTypes.JOB_COMPLETED, completedEvent);
237
- return jobResult;
238
- }
239
- catch (error) {
240
- const endTime = Date.now();
241
- const duration = endTime - startTime;
242
- const errorMessage = error instanceof Error ? error.message : String(error);
243
- // Update statistics
244
- this.totalJobsProcessed++;
245
- this.totalJobsFailed++;
246
- const jobResult = {
247
- job,
248
- success: false,
249
- error: errorMessage,
250
- completedAt: new Date().toISOString(),
251
- duration,
252
- };
253
- // Emit job failed event
254
- const failedEvent = {
255
- job,
256
- error: errorMessage,
257
- willRetry: this.shouldRetryJob(job),
258
- retryCount: job.retryCount || 0,
259
- };
260
- await this.eventBus.emit(JobExecutorEventTypes.JOB_FAILED, failedEvent);
261
- return jobResult;
262
- }
263
- finally {
264
- // Clean up
265
- this.activeJobs.delete(job.id);
266
- this.abortControllers.delete(job.id);
267
- }
268
- }
269
- async executeJobWithTimeout(job, signal) {
270
- // Create a timeout promise
271
- const timeoutPromise = new Promise((_, reject) => {
272
- const timeout = setTimeout(() => {
273
- reject(new Error(`Job ${job.id} timed out after ${this.config.jobTimeout}ms`));
274
- }, this.config.jobTimeout);
275
- // Clear timeout if aborted
276
- signal.addEventListener("abort", () => {
277
- clearTimeout(timeout);
278
- reject(new Error(`Job ${job.id} was aborted`));
279
- });
280
- });
281
- // Create the actual job execution promise
282
- const jobPromise = this.performJobExecution(job, signal);
283
- // Race between job execution and timeout
284
- return Promise.race([jobPromise, timeoutPromise]);
285
- }
286
- async performJobExecution(job, signal) {
287
- // This is where the actual job execution logic would go
288
- // For now, we'll simulate job execution
289
- // Check if aborted
290
- if (signal.aborted) {
291
- throw new Error("Job was aborted");
292
- }
293
- // Simulate some work
294
- await this.sleep(Math.random() * 100 + 50); // 50-150ms (reduced for faster tests)
295
- // Check if aborted again
296
- if (signal.aborted) {
297
- throw new Error("Job was aborted");
298
- }
299
- // Always succeed unless explicitly mocked in tests
300
- return {
301
- metadata: {
302
- operationType: job.operation.type,
303
- documentId: job.documentId,
304
- executedAt: new Date().toISOString(),
305
- },
306
- };
307
- }
308
- shouldRetryJob(job) {
309
- const retryCount = job.retryCount || 0;
310
- const maxRetries = job.maxRetries || 3;
311
- return retryCount < maxRetries;
312
- }
313
- calculateRetryDelay(retryCount) {
314
- // Exponential backoff with jitter
315
- const exponentialDelay = this.config.retryBaseDelay * Math.pow(2, retryCount - 1);
316
- const jitter = Math.random() * 0.1 * exponentialDelay; // 10% jitter
317
- const delay = Math.min(exponentialDelay + jitter, this.config.retryMaxDelay);
318
- return Math.floor(delay);
319
- }
320
- sleep(ms) {
321
- return new Promise((resolve) => setTimeout(resolve, ms));
322
- }
323
- }
324
- export { JobExecutorEventTypes } from "./types.js";
325
- //# sourceMappingURL=job-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job-executor.js","sourceRoot":"","sources":["../../../src/executor/job-executor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=event-bus.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.test.d.ts","sourceRoot":"","sources":["../../test/event-bus.test.ts"],"names":[],"mappings":""}