atomic-queues 1.6.2 → 2.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.
Files changed (337) hide show
  1. package/README.md +182 -411
  2. package/dist/cli/generators/json-schema.d.ts +3 -0
  3. package/dist/cli/generators/json-schema.d.ts.map +1 -0
  4. package/dist/cli/generators/json-schema.js +31 -0
  5. package/dist/cli/generators/json-schema.js.map +1 -0
  6. package/dist/cli/generators/typescript.d.ts +3 -0
  7. package/dist/cli/generators/typescript.d.ts.map +1 -0
  8. package/dist/cli/generators/typescript.js +62 -0
  9. package/dist/cli/generators/typescript.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +156 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/decorators/actor.decorators.d.ts +4 -0
  15. package/dist/decorators/actor.decorators.d.ts.map +1 -0
  16. package/dist/decorators/actor.decorators.js +32 -0
  17. package/dist/decorators/actor.decorators.js.map +1 -0
  18. package/dist/decorators/constants.d.ts +5 -12
  19. package/dist/decorators/constants.d.ts.map +1 -1
  20. package/dist/decorators/constants.js +10 -16
  21. package/dist/decorators/constants.js.map +1 -1
  22. package/dist/decorators/index.d.ts +4 -4
  23. package/dist/decorators/index.d.ts.map +1 -1
  24. package/dist/decorators/index.js +4 -4
  25. package/dist/decorators/index.js.map +1 -1
  26. package/dist/decorators/interfaces.d.ts +18 -78
  27. package/dist/decorators/interfaces.d.ts.map +1 -1
  28. package/dist/decorators/metadata-readers.d.ts +5 -26
  29. package/dist/decorators/metadata-readers.d.ts.map +1 -1
  30. package/dist/decorators/metadata-readers.js +16 -33
  31. package/dist/decorators/metadata-readers.js.map +1 -1
  32. package/dist/decorators/schema.decorators.d.ts +2 -0
  33. package/dist/decorators/schema.decorators.d.ts.map +1 -0
  34. package/dist/decorators/schema.decorators.js +13 -0
  35. package/dist/decorators/schema.decorators.js.map +1 -0
  36. package/dist/domain/interfaces/config.interfaces.d.ts +52 -153
  37. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
  38. package/dist/domain/interfaces/index.d.ts +0 -7
  39. package/dist/domain/interfaces/index.d.ts.map +1 -1
  40. package/dist/domain/interfaces/index.js +0 -7
  41. package/dist/domain/interfaces/index.js.map +1 -1
  42. package/dist/domain/interfaces/job.interfaces.d.ts +32 -65
  43. package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -1
  44. package/dist/index.d.ts +0 -34
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +0 -39
  47. package/dist/index.js.map +1 -1
  48. package/dist/module/atomic-queues.module.d.ts +0 -83
  49. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  50. package/dist/module/atomic-queues.module.js +35 -134
  51. package/dist/module/atomic-queues.module.js.map +1 -1
  52. package/dist/services/actor-registry/actor-registry.service.d.ts +30 -0
  53. package/dist/services/actor-registry/actor-registry.service.d.ts.map +1 -0
  54. package/dist/services/actor-registry/actor-registry.service.js +186 -0
  55. package/dist/services/actor-registry/actor-registry.service.js.map +1 -0
  56. package/dist/services/actor-registry/index.d.ts +2 -0
  57. package/dist/services/actor-registry/index.d.ts.map +1 -0
  58. package/dist/services/actor-registry/index.js +18 -0
  59. package/dist/services/actor-registry/index.js.map +1 -0
  60. package/dist/services/actor-system/actor-system.service.d.ts +19 -0
  61. package/dist/services/actor-system/actor-system.service.d.ts.map +1 -0
  62. package/dist/services/actor-system/actor-system.service.js +86 -0
  63. package/dist/services/actor-system/actor-system.service.js.map +1 -0
  64. package/dist/services/actor-system/index.d.ts +2 -0
  65. package/dist/services/actor-system/index.d.ts.map +1 -0
  66. package/dist/services/{cron-manager → actor-system}/index.js +1 -1
  67. package/dist/services/actor-system/index.js.map +1 -0
  68. package/dist/services/command-discovery/command-discovery.service.d.ts +6 -53
  69. package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -1
  70. package/dist/services/command-discovery/command-discovery.service.js +0 -59
  71. package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
  72. package/dist/services/constants.d.ts +2 -9
  73. package/dist/services/constants.d.ts.map +1 -1
  74. package/dist/services/constants.js +3 -10
  75. package/dist/services/constants.js.map +1 -1
  76. package/dist/services/executor-pool/executor-pool.service.d.ts +31 -0
  77. package/dist/services/executor-pool/executor-pool.service.d.ts.map +1 -0
  78. package/dist/services/executor-pool/executor-pool.service.js +147 -0
  79. package/dist/services/executor-pool/executor-pool.service.js.map +1 -0
  80. package/dist/services/executor-pool/index.d.ts +2 -0
  81. package/dist/services/executor-pool/index.d.ts.map +1 -0
  82. package/dist/services/{queue-manager → executor-pool}/index.js +1 -1
  83. package/dist/services/executor-pool/index.js.map +1 -0
  84. package/dist/services/gate/gate.service.d.ts +17 -0
  85. package/dist/services/gate/gate.service.d.ts.map +1 -0
  86. package/dist/services/gate/gate.service.js +66 -0
  87. package/dist/services/gate/gate.service.js.map +1 -0
  88. package/dist/services/gate/index.d.ts +2 -0
  89. package/dist/services/gate/index.d.ts.map +1 -0
  90. package/dist/services/{spawn-queue → gate}/index.js +1 -1
  91. package/dist/services/gate/index.js.map +1 -0
  92. package/dist/services/handler-executor/handler-executor.service.d.ts +32 -0
  93. package/dist/services/handler-executor/handler-executor.service.d.ts.map +1 -0
  94. package/dist/services/handler-executor/handler-executor.service.js +186 -0
  95. package/dist/services/handler-executor/handler-executor.service.js.map +1 -0
  96. package/dist/services/handler-executor/index.d.ts +2 -0
  97. package/dist/services/handler-executor/index.d.ts.map +1 -0
  98. package/dist/services/handler-executor/index.js +18 -0
  99. package/dist/services/handler-executor/index.js.map +1 -0
  100. package/dist/services/index.d.ts +11 -12
  101. package/dist/services/index.d.ts.map +1 -1
  102. package/dist/services/index.js +11 -12
  103. package/dist/services/index.js.map +1 -1
  104. package/dist/services/log/index.d.ts +2 -0
  105. package/dist/services/log/index.d.ts.map +1 -0
  106. package/dist/services/{index-manager → log}/index.js +1 -1
  107. package/dist/services/log/index.js.map +1 -0
  108. package/dist/services/log/log.service.d.ts +21 -0
  109. package/dist/services/log/log.service.d.ts.map +1 -0
  110. package/dist/services/log/log.service.js +92 -0
  111. package/dist/services/log/log.service.js.map +1 -0
  112. package/dist/services/queue-bus/index.d.ts +0 -4
  113. package/dist/services/queue-bus/index.d.ts.map +1 -1
  114. package/dist/services/queue-bus/index.js +0 -4
  115. package/dist/services/queue-bus/index.js.map +1 -1
  116. package/dist/services/queue-bus/queue-bus.service.d.ts +44 -198
  117. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  118. package/dist/services/queue-bus/queue-bus.service.js +103 -259
  119. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  120. package/dist/services/queue-bus/queue-bus.utils.d.ts +0 -28
  121. package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -1
  122. package/dist/services/queue-bus/queue-bus.utils.js +1 -41
  123. package/dist/services/queue-bus/queue-bus.utils.js.map +1 -1
  124. package/dist/services/registry/index.d.ts +4 -0
  125. package/dist/services/registry/index.d.ts.map +1 -0
  126. package/dist/services/{queue-events-manager → registry}/index.js +3 -1
  127. package/dist/services/registry/index.js.map +1 -0
  128. package/dist/services/registry/registry.service.d.ts +43 -0
  129. package/dist/services/registry/registry.service.d.ts.map +1 -0
  130. package/dist/services/registry/registry.service.js +379 -0
  131. package/dist/services/registry/registry.service.js.map +1 -0
  132. package/dist/services/registry/registry.types.d.ts +24 -0
  133. package/dist/services/registry/registry.types.d.ts.map +1 -0
  134. package/dist/{domain/interfaces/lock.interfaces.js → services/registry/registry.types.js} +1 -1
  135. package/dist/services/registry/registry.types.js.map +1 -0
  136. package/dist/services/registry/schema-converter.d.ts +2 -0
  137. package/dist/services/registry/schema-converter.d.ts.map +1 -0
  138. package/dist/services/registry/schema-converter.js +27 -0
  139. package/dist/services/registry/schema-converter.js.map +1 -0
  140. package/dist/services/result-collector/index.d.ts +2 -0
  141. package/dist/services/result-collector/index.d.ts.map +1 -0
  142. package/dist/services/result-collector/index.js +18 -0
  143. package/dist/services/result-collector/index.js.map +1 -0
  144. package/dist/services/result-collector/result-collector.service.d.ts +17 -0
  145. package/dist/services/result-collector/result-collector.service.d.ts.map +1 -0
  146. package/dist/services/result-collector/result-collector.service.js +92 -0
  147. package/dist/services/result-collector/result-collector.service.js.map +1 -0
  148. package/dist/services/scheduler/index.d.ts +2 -0
  149. package/dist/services/scheduler/index.d.ts.map +1 -0
  150. package/dist/services/{job-processor → scheduler}/index.js +1 -1
  151. package/dist/services/scheduler/index.js.map +1 -0
  152. package/dist/services/scheduler/scheduler.service.d.ts +17 -0
  153. package/dist/services/scheduler/scheduler.service.d.ts.map +1 -0
  154. package/dist/services/scheduler/scheduler.service.js +116 -0
  155. package/dist/services/scheduler/scheduler.service.js.map +1 -0
  156. package/dist/services/shutdown/index.d.ts +2 -0
  157. package/dist/services/shutdown/index.d.ts.map +1 -0
  158. package/dist/services/shutdown/index.js +18 -0
  159. package/dist/services/shutdown/index.js.map +1 -0
  160. package/dist/services/shutdown/shutdown.service.d.ts +8 -0
  161. package/dist/services/shutdown/shutdown.service.d.ts.map +1 -0
  162. package/dist/services/shutdown/shutdown.service.js +29 -0
  163. package/dist/services/shutdown/shutdown.service.js.map +1 -0
  164. package/dist/utils/index.d.ts +3 -1
  165. package/dist/utils/index.d.ts.map +1 -1
  166. package/dist/utils/index.js +3 -1
  167. package/dist/utils/index.js.map +1 -1
  168. package/dist/utils/naming.utils.d.ts +0 -16
  169. package/dist/utils/naming.utils.d.ts.map +1 -1
  170. package/dist/utils/naming.utils.js +0 -29
  171. package/dist/utils/naming.utils.js.map +1 -1
  172. package/package.json +19 -11
  173. package/dist/decorators/legacy.decorators.d.ts +0 -36
  174. package/dist/decorators/legacy.decorators.d.ts.map +0 -1
  175. package/dist/decorators/legacy.decorators.js +0 -61
  176. package/dist/decorators/legacy.decorators.js.map +0 -1
  177. package/dist/decorators/scaler.decorators.d.ts +0 -65
  178. package/dist/decorators/scaler.decorators.d.ts.map +0 -1
  179. package/dist/decorators/scaler.decorators.js +0 -103
  180. package/dist/decorators/scaler.decorators.js.map +0 -1
  181. package/dist/decorators/type-guards.d.ts +0 -18
  182. package/dist/decorators/type-guards.d.ts.map +0 -1
  183. package/dist/decorators/type-guards.js +0 -32
  184. package/dist/decorators/type-guards.js.map +0 -1
  185. package/dist/decorators/worker.decorators.d.ts +0 -58
  186. package/dist/decorators/worker.decorators.d.ts.map +0 -1
  187. package/dist/decorators/worker.decorators.js +0 -92
  188. package/dist/decorators/worker.decorators.js.map +0 -1
  189. package/dist/domain/interfaces/event.interfaces.d.ts +0 -71
  190. package/dist/domain/interfaces/event.interfaces.d.ts.map +0 -1
  191. package/dist/domain/interfaces/event.interfaces.js +0 -3
  192. package/dist/domain/interfaces/event.interfaces.js.map +0 -1
  193. package/dist/domain/interfaces/index-tracking.interfaces.d.ts +0 -69
  194. package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +0 -1
  195. package/dist/domain/interfaces/index-tracking.interfaces.js +0 -3
  196. package/dist/domain/interfaces/index-tracking.interfaces.js.map +0 -1
  197. package/dist/domain/interfaces/lock.interfaces.d.ts +0 -54
  198. package/dist/domain/interfaces/lock.interfaces.d.ts.map +0 -1
  199. package/dist/domain/interfaces/lock.interfaces.js.map +0 -1
  200. package/dist/domain/interfaces/process.interfaces.d.ts +0 -44
  201. package/dist/domain/interfaces/process.interfaces.d.ts.map +0 -1
  202. package/dist/domain/interfaces/process.interfaces.js +0 -3
  203. package/dist/domain/interfaces/process.interfaces.js.map +0 -1
  204. package/dist/domain/interfaces/queue.interfaces.d.ts +0 -46
  205. package/dist/domain/interfaces/queue.interfaces.d.ts.map +0 -1
  206. package/dist/domain/interfaces/queue.interfaces.js +0 -3
  207. package/dist/domain/interfaces/queue.interfaces.js.map +0 -1
  208. package/dist/domain/interfaces/scaling.interfaces.d.ts +0 -62
  209. package/dist/domain/interfaces/scaling.interfaces.d.ts.map +0 -1
  210. package/dist/domain/interfaces/scaling.interfaces.js +0 -3
  211. package/dist/domain/interfaces/scaling.interfaces.js.map +0 -1
  212. package/dist/domain/interfaces/worker.interfaces.d.ts +0 -120
  213. package/dist/domain/interfaces/worker.interfaces.d.ts.map +0 -1
  214. package/dist/domain/interfaces/worker.interfaces.js +0 -3
  215. package/dist/domain/interfaces/worker.interfaces.js.map +0 -1
  216. package/dist/services/cron-manager/cron-manager.service.d.ts +0 -199
  217. package/dist/services/cron-manager/cron-manager.service.d.ts.map +0 -1
  218. package/dist/services/cron-manager/cron-manager.service.js +0 -583
  219. package/dist/services/cron-manager/cron-manager.service.js.map +0 -1
  220. package/dist/services/cron-manager/index.d.ts +0 -2
  221. package/dist/services/cron-manager/index.d.ts.map +0 -1
  222. package/dist/services/cron-manager/index.js.map +0 -1
  223. package/dist/services/index-manager/index-manager.service.d.ts +0 -142
  224. package/dist/services/index-manager/index-manager.service.d.ts.map +0 -1
  225. package/dist/services/index-manager/index-manager.service.js +0 -325
  226. package/dist/services/index-manager/index-manager.service.js.map +0 -1
  227. package/dist/services/index-manager/index.d.ts +0 -2
  228. package/dist/services/index-manager/index.d.ts.map +0 -1
  229. package/dist/services/index-manager/index.js.map +0 -1
  230. package/dist/services/job-processor/index.d.ts +0 -2
  231. package/dist/services/job-processor/index.d.ts.map +0 -1
  232. package/dist/services/job-processor/index.js.map +0 -1
  233. package/dist/services/job-processor/job-processor.service.d.ts +0 -156
  234. package/dist/services/job-processor/job-processor.service.d.ts.map +0 -1
  235. package/dist/services/job-processor/job-processor.service.js +0 -331
  236. package/dist/services/job-processor/job-processor.service.js.map +0 -1
  237. package/dist/services/processor-discovery/decorator-discovery.service.d.ts +0 -40
  238. package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +0 -1
  239. package/dist/services/processor-discovery/decorator-discovery.service.js +0 -191
  240. package/dist/services/processor-discovery/decorator-discovery.service.js.map +0 -1
  241. package/dist/services/processor-discovery/index.d.ts +0 -6
  242. package/dist/services/processor-discovery/index.d.ts.map +0 -1
  243. package/dist/services/processor-discovery/index.js +0 -22
  244. package/dist/services/processor-discovery/index.js.map +0 -1
  245. package/dist/services/processor-discovery/processor-discovery.service.d.ts +0 -98
  246. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +0 -1
  247. package/dist/services/processor-discovery/processor-discovery.service.js +0 -258
  248. package/dist/services/processor-discovery/processor-discovery.service.js.map +0 -1
  249. package/dist/services/processor-discovery/processor-registry.d.ts +0 -58
  250. package/dist/services/processor-discovery/processor-registry.d.ts.map +0 -1
  251. package/dist/services/processor-discovery/processor-registry.js +0 -74
  252. package/dist/services/processor-discovery/processor-registry.js.map +0 -1
  253. package/dist/services/processor-discovery/scaling-registration.service.d.ts +0 -60
  254. package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +0 -1
  255. package/dist/services/processor-discovery/scaling-registration.service.js +0 -261
  256. package/dist/services/processor-discovery/scaling-registration.service.js.map +0 -1
  257. package/dist/services/processor-discovery/worker-factory.service.d.ts +0 -54
  258. package/dist/services/processor-discovery/worker-factory.service.d.ts.map +0 -1
  259. package/dist/services/processor-discovery/worker-factory.service.js +0 -185
  260. package/dist/services/processor-discovery/worker-factory.service.js.map +0 -1
  261. package/dist/services/queue-bus/entity-target.d.ts +0 -58
  262. package/dist/services/queue-bus/entity-target.d.ts.map +0 -1
  263. package/dist/services/queue-bus/entity-target.js +0 -109
  264. package/dist/services/queue-bus/entity-target.js.map +0 -1
  265. package/dist/services/queue-bus/queue-bus.types.d.ts +0 -40
  266. package/dist/services/queue-bus/queue-bus.types.d.ts.map +0 -1
  267. package/dist/services/queue-bus/queue-bus.types.js +0 -3
  268. package/dist/services/queue-bus/queue-bus.types.js.map +0 -1
  269. package/dist/services/queue-bus/queue-target.d.ts +0 -61
  270. package/dist/services/queue-bus/queue-target.d.ts.map +0 -1
  271. package/dist/services/queue-bus/queue-target.js +0 -123
  272. package/dist/services/queue-bus/queue-target.js.map +0 -1
  273. package/dist/services/queue-events-manager/index.d.ts +0 -2
  274. package/dist/services/queue-events-manager/index.d.ts.map +0 -1
  275. package/dist/services/queue-events-manager/index.js.map +0 -1
  276. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -120
  277. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +0 -1
  278. package/dist/services/queue-events-manager/queue-events-manager.service.js +0 -343
  279. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +0 -1
  280. package/dist/services/queue-manager/index.d.ts +0 -2
  281. package/dist/services/queue-manager/index.d.ts.map +0 -1
  282. package/dist/services/queue-manager/index.js.map +0 -1
  283. package/dist/services/queue-manager/queue-manager.service.d.ts +0 -148
  284. package/dist/services/queue-manager/queue-manager.service.d.ts.map +0 -1
  285. package/dist/services/queue-manager/queue-manager.service.js +0 -348
  286. package/dist/services/queue-manager/queue-manager.service.js.map +0 -1
  287. package/dist/services/resource-lock/index.d.ts +0 -2
  288. package/dist/services/resource-lock/index.d.ts.map +0 -1
  289. package/dist/services/resource-lock/index.js +0 -18
  290. package/dist/services/resource-lock/index.js.map +0 -1
  291. package/dist/services/resource-lock/resource-lock.service.d.ts +0 -120
  292. package/dist/services/resource-lock/resource-lock.service.d.ts.map +0 -1
  293. package/dist/services/resource-lock/resource-lock.service.js +0 -367
  294. package/dist/services/resource-lock/resource-lock.service.js.map +0 -1
  295. package/dist/services/service-queue/index.d.ts +0 -3
  296. package/dist/services/service-queue/index.d.ts.map +0 -1
  297. package/dist/services/service-queue/index.js +0 -19
  298. package/dist/services/service-queue/index.js.map +0 -1
  299. package/dist/services/service-queue/service-queue.service.d.ts +0 -199
  300. package/dist/services/service-queue/service-queue.service.d.ts.map +0 -1
  301. package/dist/services/service-queue/service-queue.service.js +0 -617
  302. package/dist/services/service-queue/service-queue.service.js.map +0 -1
  303. package/dist/services/service-queue/service-queue.types.d.ts +0 -32
  304. package/dist/services/service-queue/service-queue.types.d.ts.map +0 -1
  305. package/dist/services/service-queue/service-queue.types.js +0 -27
  306. package/dist/services/service-queue/service-queue.types.js.map +0 -1
  307. package/dist/services/shutdown-state/index.d.ts +0 -2
  308. package/dist/services/shutdown-state/index.d.ts.map +0 -1
  309. package/dist/services/shutdown-state/index.js +0 -18
  310. package/dist/services/shutdown-state/index.js.map +0 -1
  311. package/dist/services/shutdown-state/shutdown-state.service.d.ts +0 -69
  312. package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +0 -1
  313. package/dist/services/shutdown-state/shutdown-state.service.js +0 -127
  314. package/dist/services/shutdown-state/shutdown-state.service.js.map +0 -1
  315. package/dist/services/spawn-queue/index.d.ts +0 -2
  316. package/dist/services/spawn-queue/index.d.ts.map +0 -1
  317. package/dist/services/spawn-queue/index.js.map +0 -1
  318. package/dist/services/spawn-queue/spawn-queue.service.d.ts +0 -119
  319. package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +0 -1
  320. package/dist/services/spawn-queue/spawn-queue.service.js +0 -273
  321. package/dist/services/spawn-queue/spawn-queue.service.js.map +0 -1
  322. package/dist/services/worker-manager/index.d.ts +0 -2
  323. package/dist/services/worker-manager/index.d.ts.map +0 -1
  324. package/dist/services/worker-manager/index.js +0 -18
  325. package/dist/services/worker-manager/index.js.map +0 -1
  326. package/dist/services/worker-manager/worker-manager.service.d.ts +0 -221
  327. package/dist/services/worker-manager/worker-manager.service.d.ts.map +0 -1
  328. package/dist/services/worker-manager/worker-manager.service.js +0 -591
  329. package/dist/services/worker-manager/worker-manager.service.js.map +0 -1
  330. package/dist/utils/helpers.d.ts +0 -5
  331. package/dist/utils/helpers.d.ts.map +0 -1
  332. package/dist/utils/helpers.js +0 -21
  333. package/dist/utils/helpers.js.map +0 -1
  334. package/dist/utils/job.utils.d.ts +0 -50
  335. package/dist/utils/job.utils.d.ts.map +0 -1
  336. package/dist/utils/job.utils.js +0 -89
  337. package/dist/utils/job.utils.js.map +0 -1
@@ -1,617 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- var ServiceQueueManager_1;
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.ServiceQueueManager = exports.ServiceQueueJobNames = void 0;
20
- const common_1 = require("@nestjs/common");
21
- const bullmq_1 = require("bullmq");
22
- const ioredis_1 = __importDefault(require("ioredis"));
23
- const uuid_1 = require("uuid");
24
- const utils_1 = require("../../utils");
25
- const constants_1 = require("../constants");
26
- const service_queue_types_1 = require("./service-queue.types");
27
- var service_queue_types_2 = require("./service-queue.types");
28
- Object.defineProperty(exports, "ServiceQueueJobNames", { enumerable: true, get: function () { return service_queue_types_2.ServiceQueueJobNames; } });
29
- /**
30
- * ServiceQueueManager
31
- *
32
- * Manages the global service-level queue for operations that MUST be atomic
33
- * across the entire distributed system. Unlike per-entity queues that can have
34
- * one worker per entity, the service queue has EXACTLY ONE worker globally.
35
- *
36
- * Use cases:
37
- * - Querying global worker counts (can't race with worker creation/deletion)
38
- * - Ownership verification for resources
39
- * - Global state mutations
40
- * - Cross-node coordination
41
- *
42
- * Architecture:
43
- * - Uses a distributed lock to ensure only ONE service worker exists globally
44
- * - The worker can run on ANY node
45
- * - If the worker dies, another node will acquire the lock and spawn it
46
- * - All operations go through the single queue for serialization
47
- *
48
- * @example
49
- * ```typescript
50
- * // Execute a global atomic operation
51
- * const workerCount = await serviceQueue.executeServiceOperation(
52
- * ServiceQueueJobNames.GET_GLOBAL_WORKER_COUNT,
53
- * { entityType: 'table' },
54
- * );
55
- * ```
56
- */
57
- let ServiceQueueManager = ServiceQueueManager_1 = class ServiceQueueManager {
58
- constructor(redis, config) {
59
- this.redis = redis;
60
- this.config = config;
61
- this.logger = new common_1.Logger(ServiceQueueManager_1.name);
62
- this.lockTTL = 10; // 10 seconds lock TTL
63
- this.lockRenewalInterval = 3000; // Renew every 3 seconds
64
- this.serviceQueue = null;
65
- this.serviceWorker = null;
66
- this.lockRenewalTimer = null;
67
- this.subscriberClient = null;
68
- this.hasLock = false;
69
- // Pending operation callbacks (for request-response pattern)
70
- this.pendingOperations = new Map();
71
- // Custom processors registered by the consuming application
72
- this.customProcessors = new Map();
73
- // Scaling cycle handler (registered by CronManager)
74
- this.scalingCycleHandler = null;
75
- this.keyPrefix = (0, utils_1.resolveKeyPrefix)(config);
76
- this.serviceQueueName =
77
- config.serviceQueue?.queueName || `${this.keyPrefix}-service-queue`;
78
- this.serviceWorkerName =
79
- config.serviceQueue?.workerName || `${this.keyPrefix}-service-worker`;
80
- this.lockKey = `${this.keyPrefix}:service-worker-lock`;
81
- this.nodeId = (0, uuid_1.v4)();
82
- }
83
- /**
84
- * Initialize on module start.
85
- * Attempts to acquire the global service worker lock.
86
- */
87
- async onModuleInit() {
88
- if (this.config.serviceQueue?.enabled === false) {
89
- this.logger.log('Service queue is disabled by configuration');
90
- return;
91
- }
92
- // Create the queue (all nodes need access to add jobs)
93
- this.serviceQueue = new bullmq_1.Queue(this.serviceQueueName, {
94
- connection: this.redis.duplicate(),
95
- defaultJobOptions: {
96
- removeOnComplete: true,
97
- removeOnFail: 100,
98
- },
99
- });
100
- // Set up subscriber for response channel
101
- this.subscriberClient = this.redis.duplicate();
102
- // Try to acquire the lock and become the service worker
103
- await this.tryAcquireServiceWorkerLock();
104
- // Start periodic lock acquisition attempts (in case current holder dies)
105
- this.startLockAcquisitionLoop();
106
- this.logger.log(`ServiceQueueManager initialized on node ${this.nodeId}`);
107
- }
108
- /**
109
- * Cleanup on shutdown.
110
- */
111
- async onApplicationShutdown() {
112
- // Stop lock renewal
113
- if (this.lockRenewalTimer) {
114
- clearInterval(this.lockRenewalTimer);
115
- this.lockRenewalTimer = null;
116
- }
117
- // Close worker if we own it
118
- if (this.serviceWorker && this.hasLock) {
119
- await this.serviceWorker.close();
120
- this.serviceWorker = null;
121
- }
122
- // Release lock
123
- if (this.hasLock) {
124
- await this.releaseLock();
125
- }
126
- // Close queue
127
- if (this.serviceQueue) {
128
- await this.serviceQueue.close();
129
- this.serviceQueue = null;
130
- }
131
- // Close subscriber
132
- if (this.subscriberClient) {
133
- await this.subscriberClient.quit();
134
- this.subscriberClient = null;
135
- }
136
- // Reject all pending operations
137
- for (const [uuid, pending] of this.pendingOperations) {
138
- clearTimeout(pending.timeout);
139
- pending.reject(new Error('Service queue shutting down'));
140
- this.pendingOperations.delete(uuid);
141
- }
142
- this.logger.log('ServiceQueueManager shut down');
143
- }
144
- // =========================================================================
145
- // PUBLIC API
146
- // =========================================================================
147
- /**
148
- * Execute a service-level operation atomically.
149
- * This queues the operation to the service queue and waits for the result.
150
- *
151
- * @param jobName The type of operation to execute
152
- * @param payload The operation payload
153
- * @param timeoutMs Timeout in milliseconds (default: 30000)
154
- * @returns The operation result
155
- */
156
- async executeServiceOperation(jobName, payload, timeoutMs = 30000) {
157
- if (!this.serviceQueue) {
158
- throw new Error('Service queue not initialized');
159
- }
160
- const uuid = (0, uuid_1.v4)();
161
- const responseChannel = `${this.keyPrefix}:service-response:${uuid}`;
162
- const jobData = {
163
- uuid,
164
- jobName,
165
- payload,
166
- responseChannel,
167
- };
168
- // Set up response listener before adding job
169
- const resultPromise = this.waitForResponse(uuid, responseChannel, timeoutMs);
170
- // Add job to service queue
171
- await this.serviceQueue.add(jobName, jobData);
172
- return resultPromise;
173
- }
174
- /**
175
- * Queue a service operation without waiting for result (fire-and-forget).
176
- */
177
- async queueServiceOperation(jobName, payload) {
178
- if (!this.serviceQueue) {
179
- throw new Error('Service queue not initialized');
180
- }
181
- const uuid = (0, uuid_1.v4)();
182
- const jobData = {
183
- uuid,
184
- jobName,
185
- payload,
186
- };
187
- await this.serviceQueue.add(jobName, jobData);
188
- return uuid;
189
- }
190
- /**
191
- * Register a custom processor for service-level operations.
192
- * This allows the consuming application to add custom atomic operations.
193
- */
194
- registerCustomProcessor(name, processor) {
195
- this.customProcessors.set(name, processor);
196
- this.logger.debug(`Registered custom service processor: ${name}`);
197
- }
198
- /**
199
- * Check if this node is the service worker owner.
200
- */
201
- isServiceWorkerOwner() {
202
- return this.hasLock;
203
- }
204
- /**
205
- * Register the scaling cycle handler (called by CronManager).
206
- * This allows CronManager to register its internal scaling logic to be
207
- * executed atomically by the service worker.
208
- */
209
- registerScalingCycleHandler(handler) {
210
- this.scalingCycleHandler = handler;
211
- this.logger.debug('Scaling cycle handler registered');
212
- }
213
- /**
214
- * Register the spawn worker handler (called by CronManager or TableWorkerScalingService).
215
- * This allows directly spawning a worker for a specific entity without waiting
216
- * for the next scaling cycle.
217
- */
218
- registerSpawnWorkerHandler(handler) {
219
- this.spawnWorkerHandler = handler;
220
- this.logger.debug('Spawn worker handler registered');
221
- }
222
- /**
223
- * Trigger a scaling cycle for an entity type.
224
- * This queues the job to the service queue - only the service worker will execute it.
225
- */
226
- async triggerScalingCycle(entityType) {
227
- if (!this.serviceQueue) {
228
- this.logger.warn('Service queue not initialized, cannot trigger scaling cycle');
229
- return;
230
- }
231
- // Fire-and-forget - we don't need to wait for the result
232
- await this.queueServiceOperation(service_queue_types_1.ServiceQueueJobNames.RUN_SCALING_CYCLE, {
233
- entityType,
234
- });
235
- }
236
- /**
237
- * Request spawning a worker for a specific entity.
238
- * This is used when an entity (e.g., table) is opened and needs a worker immediately,
239
- * without waiting for the next scaling cycle.
240
- *
241
- * The job is processed by the service worker to ensure atomic operation.
242
- *
243
- * @param entityType The type of entity (e.g., 'table')
244
- * @param entityId The ID of the entity (e.g., tableId)
245
- */
246
- async requestSpawnEntityWorker(entityType, entityId) {
247
- if (!this.serviceQueue) {
248
- this.logger.warn('Service queue not initialized, cannot spawn entity worker');
249
- return;
250
- }
251
- this.logger.log(`Requesting worker spawn for ${entityType}/${entityId}`);
252
- // Fire-and-forget - we don't need to wait for the result
253
- await this.queueServiceOperation(service_queue_types_1.ServiceQueueJobNames.SPAWN_ENTITY_WORKER, {
254
- entityType,
255
- entityId,
256
- });
257
- }
258
- /**
259
- * Get the service queue name.
260
- */
261
- getQueueName() {
262
- return this.serviceQueueName;
263
- }
264
- /**
265
- * Get the service worker name.
266
- */
267
- getWorkerName() {
268
- return this.serviceWorkerName;
269
- }
270
- /**
271
- * Get pending job count in the service queue.
272
- */
273
- async getQueueDepth() {
274
- if (!this.serviceQueue)
275
- return 0;
276
- const counts = await this.serviceQueue.getJobCounts();
277
- return counts.waiting + counts.active + counts.delayed;
278
- }
279
- // =========================================================================
280
- // PRIVATE METHODS
281
- // =========================================================================
282
- /**
283
- * Try to acquire the global service worker lock.
284
- */
285
- async tryAcquireServiceWorkerLock() {
286
- // Use SET NX EX for atomic lock acquisition
287
- const result = await this.redis.set(this.lockKey, this.nodeId, 'EX', this.lockTTL, 'NX');
288
- if (result === 'OK') {
289
- this.hasLock = true;
290
- this.logger.log(`Node ${this.nodeId} acquired service worker lock`);
291
- // Start the service worker
292
- await this.startServiceWorker();
293
- // Start lock renewal
294
- this.startLockRenewal();
295
- return true;
296
- }
297
- // Log who holds the lock and its TTL
298
- const currentOwner = await this.redis.get(this.lockKey);
299
- const ttl = await this.redis.ttl(this.lockKey);
300
- this.logger.debug(`Service worker lock held by node ${currentOwner} (TTL: ${ttl}s). ` +
301
- `This node ${this.nodeId} will retry after lock expires.`);
302
- return false;
303
- }
304
- /**
305
- * Release the service worker lock.
306
- */
307
- async releaseLock() {
308
- // Only release if we own the lock
309
- const currentOwner = await this.redis.get(this.lockKey);
310
- if (currentOwner === this.nodeId) {
311
- await this.redis.del(this.lockKey);
312
- this.hasLock = false;
313
- this.logger.log(`Node ${this.nodeId} released service worker lock`);
314
- }
315
- }
316
- /**
317
- * Start periodic lock renewal.
318
- */
319
- startLockRenewal() {
320
- this.lockRenewalTimer = setInterval(async () => {
321
- if (!this.hasLock)
322
- return;
323
- try {
324
- // Only extend if we still own the lock
325
- const currentOwner = await this.redis.get(this.lockKey);
326
- if (currentOwner === this.nodeId) {
327
- await this.redis.expire(this.lockKey, this.lockTTL);
328
- }
329
- else {
330
- // We lost the lock somehow
331
- this.hasLock = false;
332
- this.logger.warn(`Node ${this.nodeId} lost service worker lock unexpectedly`);
333
- await this.stopServiceWorker();
334
- }
335
- }
336
- catch (error) {
337
- this.logger.error(`Error renewing service worker lock: ${error}`);
338
- }
339
- }, this.lockRenewalInterval);
340
- }
341
- /**
342
- * Start periodic lock acquisition attempts.
343
- * Retries more frequently initially, then backs off to lockTTL interval.
344
- */
345
- startLockAcquisitionLoop() {
346
- let retryCount = 0;
347
- const maxFastRetries = 5;
348
- const fastRetryInterval = 2000; // 2 seconds initially
349
- const normalRetryInterval = (this.lockTTL + 1) * 1000;
350
- const tryAcquire = async () => {
351
- if (this.hasLock)
352
- return;
353
- // Check if lock exists
354
- const lockExists = await this.redis.exists(this.lockKey);
355
- if (!lockExists) {
356
- const acquired = await this.tryAcquireServiceWorkerLock();
357
- if (acquired)
358
- return;
359
- }
360
- // Schedule next attempt
361
- retryCount++;
362
- const interval = retryCount <= maxFastRetries ? fastRetryInterval : normalRetryInterval;
363
- setTimeout(tryAcquire, interval);
364
- };
365
- // Start the acquisition loop after a short delay
366
- setTimeout(tryAcquire, fastRetryInterval);
367
- }
368
- /**
369
- * Start the service worker.
370
- */
371
- async startServiceWorker() {
372
- if (this.serviceWorker) {
373
- await this.serviceWorker.close();
374
- }
375
- this.serviceWorker = new bullmq_1.Worker(this.serviceQueueName, async (job) => {
376
- return this.processServiceJob(job);
377
- }, {
378
- connection: this.redis.duplicate(),
379
- concurrency: 1, // MUST be 1 for atomic operations
380
- });
381
- this.serviceWorker.on('ready', () => {
382
- this.logger.log(`Service worker ready on node ${this.nodeId}`);
383
- });
384
- this.serviceWorker.on('error', (error) => {
385
- this.logger.error(`Service worker error: ${error.message}`);
386
- });
387
- }
388
- /**
389
- * Stop the service worker.
390
- */
391
- async stopServiceWorker() {
392
- if (this.serviceWorker) {
393
- await this.serviceWorker.close();
394
- this.serviceWorker = null;
395
- }
396
- }
397
- /**
398
- * Process a service queue job.
399
- */
400
- async processServiceJob(job) {
401
- const { uuid, jobName, payload, responseChannel } = job.data;
402
- if (this.config.verbose) {
403
- this.logger.debug(`Processing service job ${uuid}: ${jobName}`);
404
- }
405
- let result;
406
- let error = null;
407
- try {
408
- switch (jobName) {
409
- case service_queue_types_1.ServiceQueueJobNames.GET_GLOBAL_WORKER_COUNT:
410
- result = await this.handleGetGlobalWorkerCount(payload);
411
- break;
412
- case service_queue_types_1.ServiceQueueJobNames.GET_ENTITY_WORKERS:
413
- result = await this.handleGetEntityWorkers(payload);
414
- break;
415
- case service_queue_types_1.ServiceQueueJobNames.VERIFY_OWNERSHIP:
416
- result = await this.handleVerifyOwnership(payload);
417
- break;
418
- case service_queue_types_1.ServiceQueueJobNames.ACQUIRE_GLOBAL_LOCK:
419
- result = await this.handleAcquireGlobalLock(payload);
420
- break;
421
- case service_queue_types_1.ServiceQueueJobNames.RELEASE_GLOBAL_LOCK:
422
- result = await this.handleReleaseGlobalLock(payload);
423
- break;
424
- case service_queue_types_1.ServiceQueueJobNames.RUN_SCALING_CYCLE:
425
- result = await this.handleRunScalingCycle(payload);
426
- break;
427
- case service_queue_types_1.ServiceQueueJobNames.SPAWN_ENTITY_WORKER:
428
- result = await this.handleSpawnEntityWorker(payload);
429
- break;
430
- case service_queue_types_1.ServiceQueueJobNames.CUSTOM:
431
- result = await this.handleCustomOperation(payload);
432
- break;
433
- default:
434
- throw new Error(`Unknown service job name: ${jobName}`);
435
- }
436
- }
437
- catch (err) {
438
- error = err;
439
- this.logger.error(`Service job ${uuid} failed: ${error.message}`);
440
- }
441
- // Send response if channel specified
442
- if (responseChannel) {
443
- await this.redis.publish(responseChannel, JSON.stringify({
444
- uuid,
445
- success: !error,
446
- result,
447
- error: error?.message,
448
- }));
449
- }
450
- if (error)
451
- throw error;
452
- return result;
453
- }
454
- /**
455
- * Wait for a response on a channel.
456
- */
457
- async waitForResponse(uuid, channel, timeoutMs) {
458
- return new Promise((resolve, reject) => {
459
- const timeout = setTimeout(() => {
460
- this.pendingOperations.delete(uuid);
461
- this.subscriberClient?.unsubscribe(channel).catch(() => { });
462
- reject(new Error(`Service operation timed out after ${timeoutMs}ms`));
463
- }, timeoutMs);
464
- this.pendingOperations.set(uuid, {
465
- resolve: resolve,
466
- reject,
467
- timeout
468
- });
469
- // Subscribe to response channel
470
- this.subscriberClient?.subscribe(channel).then(() => {
471
- const handler = (ch, message) => {
472
- if (ch === channel) {
473
- const response = JSON.parse(message);
474
- if (response.uuid === uuid) {
475
- clearTimeout(timeout);
476
- this.pendingOperations.delete(uuid);
477
- this.subscriberClient?.unsubscribe(channel).catch(() => { });
478
- this.subscriberClient?.off('message', handler);
479
- if (response.success) {
480
- resolve(response.result);
481
- }
482
- else {
483
- reject(new Error(response.error || 'Service operation failed'));
484
- }
485
- }
486
- }
487
- };
488
- this.subscriberClient?.on('message', handler);
489
- });
490
- });
491
- }
492
- // =========================================================================
493
- // BUILT-IN SERVICE HANDLERS
494
- // =========================================================================
495
- /**
496
- * Get global worker count across all nodes.
497
- */
498
- async handleGetGlobalWorkerCount(payload) {
499
- const { entityType } = payload;
500
- const pattern = entityType
501
- ? `${this.keyPrefix}:worker:*:${entityType}-*`
502
- : `${this.keyPrefix}:worker:*:*`;
503
- const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
504
- return keys.length;
505
- }
506
- /**
507
- * Get workers for a specific entity.
508
- * Uses the worker heartbeat TTL keys as the single source of truth.
509
- */
510
- async handleGetEntityWorkers(payload) {
511
- const { entityType, entityId } = payload;
512
- // Worker heartbeat keys follow pattern: {prefix}:worker:{nodeId}:{workerName}
513
- // Worker names follow pattern: {entityId}-worker
514
- const workerName = `${entityId}-worker`;
515
- const pattern = `${this.keyPrefix}:worker:*:${workerName}`;
516
- const keys = await (0, utils_1.scanKeys)(this.redis, pattern);
517
- return keys.map((key) => key.split(':').pop());
518
- }
519
- /**
520
- * Verify ownership of a resource.
521
- */
522
- async handleVerifyOwnership(payload) {
523
- const { resourceType, resourceId, expectedOwner } = payload;
524
- const key = `${this.keyPrefix}:lock:${resourceType}:${resourceId}`;
525
- const owner = await this.redis.get(key);
526
- return {
527
- owned: owner === expectedOwner,
528
- owner: owner || undefined,
529
- };
530
- }
531
- /**
532
- * Acquire a global lock atomically.
533
- */
534
- async handleAcquireGlobalLock(payload) {
535
- const { lockName, ownerId, ttlSeconds = 30 } = payload;
536
- const key = `${this.keyPrefix}:global-lock:${lockName}`;
537
- const result = await this.redis.set(key, ownerId, 'EX', ttlSeconds, 'NX');
538
- return { acquired: result === 'OK' };
539
- }
540
- /**
541
- * Release a global lock atomically.
542
- */
543
- async handleReleaseGlobalLock(payload) {
544
- const { lockName, ownerId } = payload;
545
- const key = `${this.keyPrefix}:global-lock:${lockName}`;
546
- // Only release if we own it (using Lua for atomicity)
547
- const script = `
548
- if redis.call("get", KEYS[1]) == ARGV[1] then
549
- return redis.call("del", KEYS[1])
550
- else
551
- return 0
552
- end
553
- `;
554
- const result = await this.redis.eval(script, 1, key, ownerId);
555
- return { released: result === 1 };
556
- }
557
- /**
558
- * Handle custom operation by delegating to registered processor.
559
- */
560
- async handleCustomOperation(payload) {
561
- const { processorName, data } = payload;
562
- const processor = this.customProcessors.get(processorName);
563
- if (!processor) {
564
- throw new Error(`No custom processor registered for: ${processorName}`);
565
- }
566
- return processor(data);
567
- }
568
- /**
569
- * Handle scaling cycle request by delegating to registered CronManager handler.
570
- */
571
- async handleRunScalingCycle(payload) {
572
- const { entityType } = payload;
573
- if (!this.scalingCycleHandler) {
574
- this.logger.warn(`No scaling cycle handler registered for entity type: ${entityType}`);
575
- return { processed: false, reason: 'no_handler' };
576
- }
577
- try {
578
- const result = await this.scalingCycleHandler(entityType);
579
- return { processed: true, result };
580
- }
581
- catch (error) {
582
- this.logger.error(`Scaling cycle failed for ${entityType}: ${error.message}`);
583
- return { processed: false, error: error.message };
584
- }
585
- }
586
- /**
587
- * Handle spawn entity worker request.
588
- * This directly spawns a worker for the specific entity, bypassing the scaling cycle.
589
- * Used when opening a table/entity that needs a worker immediately.
590
- */
591
- async handleSpawnEntityWorker(payload) {
592
- const { entityType, entityId } = payload;
593
- this.logger.log(`Processing spawn worker request for ${entityType}/${entityId}`);
594
- if (!this.spawnWorkerHandler) {
595
- this.logger.warn(`No spawn worker handler registered, cannot spawn worker for ${entityType}/${entityId}`);
596
- return { spawned: false, reason: 'no_spawn_handler' };
597
- }
598
- try {
599
- // Directly spawn the worker for this specific entity
600
- await this.spawnWorkerHandler(entityType, entityId);
601
- this.logger.log(`Worker spawned for ${entityType}/${entityId}`);
602
- return { spawned: true, entityType, entityId };
603
- }
604
- catch (error) {
605
- this.logger.error(`Failed to spawn worker for ${entityType}/${entityId}: ${error.message}`);
606
- return { spawned: false, error: error.message };
607
- }
608
- }
609
- };
610
- exports.ServiceQueueManager = ServiceQueueManager;
611
- exports.ServiceQueueManager = ServiceQueueManager = ServiceQueueManager_1 = __decorate([
612
- (0, common_1.Injectable)(),
613
- __param(0, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_REDIS)),
614
- __param(1, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
615
- __metadata("design:paramtypes", [ioredis_1.default, Object])
616
- ], ServiceQueueManager);
617
- //# sourceMappingURL=service-queue.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-queue.service.js","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.service.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Service-level job names for global atomic operations.
3
- * These operations MUST be processed by exactly ONE worker across the entire distributed system.
4
- */
5
- export declare enum ServiceQueueJobNames {
6
- /** Get the count of all workers across all nodes */
7
- GET_GLOBAL_WORKER_COUNT = "get-global-worker-count",
8
- /** Get workers for a specific entity across all nodes */
9
- GET_ENTITY_WORKERS = "get-entity-workers",
10
- /** Verify ownership of a resource */
11
- VERIFY_OWNERSHIP = "verify-ownership",
12
- /** Acquire global lock */
13
- ACQUIRE_GLOBAL_LOCK = "acquire-global-lock",
14
- /** Release global lock */
15
- RELEASE_GLOBAL_LOCK = "release-global-lock",
16
- /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
17
- RUN_SCALING_CYCLE = "run-scaling-cycle",
18
- /** Spawn a worker for a specific entity - used when opening a table/entity */
19
- SPAWN_ENTITY_WORKER = "spawn-entity-worker",
20
- /** Custom service operation */
21
- CUSTOM = "custom"
22
- }
23
- /**
24
- * Job data for service queue operations
25
- */
26
- export interface IServiceQueueJobData<T = unknown> {
27
- uuid: string;
28
- jobName: ServiceQueueJobNames;
29
- payload: T;
30
- responseChannel?: string;
31
- }
32
- //# sourceMappingURL=service-queue.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-queue.types.d.ts","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,oBAAoB;IAC9B,oDAAoD;IACpD,uBAAuB,4BAA4B;IACnD,yDAAyD;IACzD,kBAAkB,uBAAuB;IACzC,qCAAqC;IACrC,gBAAgB,qBAAqB;IACrC,0BAA0B;IAC1B,mBAAmB,wBAAwB;IAC3C,0BAA0B;IAC1B,mBAAmB,wBAAwB;IAC3C,oFAAoF;IACpF,iBAAiB,sBAAsB;IACvC,8EAA8E;IAC9E,mBAAmB,wBAAwB;IAC3C,+BAA+B;IAC/B,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}