ee-core 5.0.0-beta.2 → 5.0.0-beta.5

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 (453) hide show
  1. package/dist/cjs/app/application.d.ts +36 -1
  2. package/dist/cjs/app/application.d.ts.map +1 -1
  3. package/dist/cjs/app/application.js +49 -2
  4. package/dist/cjs/app/application.js.map +1 -1
  5. package/dist/cjs/app/boot.d.ts +56 -1
  6. package/dist/cjs/app/boot.d.ts.map +1 -1
  7. package/dist/cjs/app/boot.js +74 -11
  8. package/dist/cjs/app/boot.js.map +1 -1
  9. package/dist/cjs/app/dir.d.ts +10 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -1
  11. package/dist/cjs/app/dir.js +71 -10
  12. package/dist/cjs/app/dir.js.map +1 -1
  13. package/dist/cjs/app/events.d.ts +58 -2
  14. package/dist/cjs/app/events.d.ts.map +1 -1
  15. package/dist/cjs/app/events.js +92 -12
  16. package/dist/cjs/app/events.js.map +1 -1
  17. package/dist/cjs/config/config_loader.d.ts +44 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -1
  19. package/dist/cjs/config/config_loader.js +82 -1
  20. package/dist/cjs/config/config_loader.js.map +1 -1
  21. package/dist/cjs/config/default_config.d.ts +5 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -1
  23. package/dist/cjs/config/default_config.js +98 -11
  24. package/dist/cjs/config/default_config.js.map +1 -1
  25. package/dist/cjs/config/index.d.ts +31 -1
  26. package/dist/cjs/config/index.d.ts.map +1 -1
  27. package/dist/cjs/config/index.js +52 -0
  28. package/dist/cjs/config/index.js.map +1 -1
  29. package/dist/cjs/const/channel.d.ts +17 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -1
  31. package/dist/cjs/const/channel.js +17 -0
  32. package/dist/cjs/const/channel.js.map +1 -1
  33. package/dist/cjs/controller/controller_loader.d.ts +20 -1
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
  35. package/dist/cjs/controller/controller_loader.js +89 -9
  36. package/dist/cjs/controller/controller_loader.js.map +1 -1
  37. package/dist/cjs/controller/index.d.ts +32 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -1
  39. package/dist/cjs/controller/index.js +66 -0
  40. package/dist/cjs/controller/index.js.map +1 -1
  41. package/dist/cjs/core/loader/file_loader.d.ts +78 -27
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
  43. package/dist/cjs/core/loader/file_loader.js +194 -68
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -1
  45. package/dist/cjs/core/utils/index.d.ts +57 -2
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -1
  47. package/dist/cjs/core/utils/index.js +120 -12
  48. package/dist/cjs/core/utils/index.js.map +1 -1
  49. package/dist/cjs/core/utils/timing.d.ts +47 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -1
  51. package/dist/cjs/core/utils/timing.js +42 -2
  52. package/dist/cjs/core/utils/timing.js.map +1 -1
  53. package/dist/cjs/cross/cross.d.ts +81 -2
  54. package/dist/cjs/cross/cross.d.ts.map +1 -1
  55. package/dist/cjs/cross/cross.js +86 -16
  56. package/dist/cjs/cross/cross.js.map +1 -1
  57. package/dist/cjs/cross/crossProcess.d.ts +85 -14
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
  59. package/dist/cjs/cross/crossProcess.js +85 -13
  60. package/dist/cjs/cross/crossProcess.js.map +1 -1
  61. package/dist/cjs/electron/app/index.d.ts +17 -1
  62. package/dist/cjs/electron/app/index.d.ts.map +1 -1
  63. package/dist/cjs/electron/app/index.js +27 -3
  64. package/dist/cjs/electron/app/index.js.map +1 -1
  65. package/dist/cjs/electron/index.d.ts +6 -0
  66. package/dist/cjs/electron/index.d.ts.map +1 -1
  67. package/dist/cjs/electron/index.js +16 -1
  68. package/dist/cjs/electron/index.js.map +1 -1
  69. package/dist/cjs/electron/window/index.d.ts +37 -0
  70. package/dist/cjs/electron/window/index.d.ts.map +1 -1
  71. package/dist/cjs/electron/window/index.js +144 -88
  72. package/dist/cjs/electron/window/index.js.map +1 -1
  73. package/dist/cjs/exception/index.d.ts +12 -0
  74. package/dist/cjs/exception/index.d.ts.map +1 -1
  75. package/dist/cjs/exception/index.js +67 -9
  76. package/dist/cjs/exception/index.js.map +1 -1
  77. package/dist/cjs/html/index.d.ts +19 -0
  78. package/dist/cjs/html/index.d.ts.map +1 -1
  79. package/dist/cjs/html/index.js +42 -0
  80. package/dist/cjs/html/index.js.map +1 -1
  81. package/dist/cjs/index.d.ts +35 -7
  82. package/dist/cjs/index.d.ts.map +1 -1
  83. package/dist/cjs/index.js +127 -80
  84. package/dist/cjs/index.js.map +1 -1
  85. package/dist/cjs/jobs/child/app.js +86 -25
  86. package/dist/cjs/jobs/child/app.js.map +1 -1
  87. package/dist/cjs/jobs/child/index.d.ts +5 -5
  88. package/dist/cjs/jobs/child/index.js +5 -5
  89. package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
  90. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
  91. package/dist/cjs/jobs/child/jobProcess.js +86 -11
  92. package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
  93. package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
  94. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
  95. package/dist/cjs/jobs/child-pool/index.js +91 -4
  96. package/dist/cjs/jobs/child-pool/index.js.map +1 -1
  97. package/dist/cjs/jobs/index.d.ts +10 -0
  98. package/dist/cjs/jobs/index.d.ts.map +1 -1
  99. package/dist/cjs/jobs/index.js +10 -0
  100. package/dist/cjs/jobs/index.js.map +1 -1
  101. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
  102. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  103. package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
  104. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
  105. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  106. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  107. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  108. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
  109. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
  110. package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
  111. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  112. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
  113. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  114. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  115. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
  116. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
  117. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  118. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  119. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  120. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  121. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  122. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  123. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  124. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  125. package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
  126. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
  127. package/dist/cjs/jobs/load-balancer/consts.js +22 -0
  128. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
  129. package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
  130. package/dist/cjs/jobs/load-balancer/index.js +18 -18
  131. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
  132. package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
  133. package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
  134. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
  135. package/dist/cjs/jobs/load-balancer/types.js +4 -0
  136. package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
  137. package/dist/cjs/jobs/registry.d.ts +24 -0
  138. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  139. package/dist/cjs/jobs/registry.js +52 -0
  140. package/dist/cjs/jobs/registry.js.map +1 -0
  141. package/dist/cjs/loader/index.d.ts +52 -0
  142. package/dist/cjs/loader/index.d.ts.map +1 -1
  143. package/dist/cjs/loader/index.js +79 -10
  144. package/dist/cjs/loader/index.js.map +1 -1
  145. package/dist/cjs/log/index.d.ts +41 -0
  146. package/dist/cjs/log/index.d.ts.map +1 -1
  147. package/dist/cjs/log/index.js +59 -20
  148. package/dist/cjs/log/index.js.map +1 -1
  149. package/dist/cjs/log/logger.d.ts +26 -0
  150. package/dist/cjs/log/logger.d.ts.map +1 -1
  151. package/dist/cjs/log/logger.js +122 -2
  152. package/dist/cjs/log/logger.js.map +1 -1
  153. package/dist/cjs/message/childMessage.d.ts +50 -0
  154. package/dist/cjs/message/childMessage.d.ts.map +1 -1
  155. package/dist/cjs/message/childMessage.js +83 -2
  156. package/dist/cjs/message/childMessage.js.map +1 -1
  157. package/dist/cjs/ps/index.d.ts +112 -0
  158. package/dist/cjs/ps/index.d.ts.map +1 -1
  159. package/dist/cjs/ps/index.js +175 -41
  160. package/dist/cjs/ps/index.js.map +1 -1
  161. package/dist/cjs/socket/httpServer.d.ts +58 -5
  162. package/dist/cjs/socket/httpServer.d.ts.map +1 -1
  163. package/dist/cjs/socket/httpServer.js +94 -28
  164. package/dist/cjs/socket/httpServer.js.map +1 -1
  165. package/dist/cjs/socket/index.d.ts +45 -3
  166. package/dist/cjs/socket/index.d.ts.map +1 -1
  167. package/dist/cjs/socket/index.js +50 -14
  168. package/dist/cjs/socket/index.js.map +1 -1
  169. package/dist/cjs/socket/ipcServer.d.ts +31 -1
  170. package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
  171. package/dist/cjs/socket/ipcServer.js +60 -43
  172. package/dist/cjs/socket/ipcServer.js.map +1 -1
  173. package/dist/cjs/socket/socketServer.d.ts +32 -1
  174. package/dist/cjs/socket/socketServer.d.ts.map +1 -1
  175. package/dist/cjs/socket/socketServer.js +53 -14
  176. package/dist/cjs/socket/socketServer.js.map +1 -1
  177. package/dist/cjs/socket/utils.d.ts +13 -0
  178. package/dist/cjs/socket/utils.d.ts.map +1 -0
  179. package/dist/cjs/socket/utils.js +41 -0
  180. package/dist/cjs/socket/utils.js.map +1 -0
  181. package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
  182. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
  183. package/dist/cjs/storage/sqliteStorage.js +121 -9
  184. package/dist/cjs/storage/sqliteStorage.js.map +1 -1
  185. package/dist/cjs/types/index.d.ts +373 -5
  186. package/dist/cjs/types/index.d.ts.map +1 -1
  187. package/dist/cjs/utils/extend.d.ts +44 -1
  188. package/dist/cjs/utils/extend.d.ts.map +1 -1
  189. package/dist/cjs/utils/extend.js +67 -19
  190. package/dist/cjs/utils/extend.js.map +1 -1
  191. package/dist/cjs/utils/helper.d.ts +154 -1
  192. package/dist/cjs/utils/helper.d.ts.map +1 -1
  193. package/dist/cjs/utils/helper.js +205 -28
  194. package/dist/cjs/utils/helper.js.map +1 -1
  195. package/dist/cjs/utils/index.d.ts +93 -0
  196. package/dist/cjs/utils/index.d.ts.map +1 -1
  197. package/dist/cjs/utils/index.js +136 -12
  198. package/dist/cjs/utils/index.js.map +1 -1
  199. package/dist/cjs/utils/ip.d.ts +29 -0
  200. package/dist/cjs/utils/ip.d.ts.map +1 -1
  201. package/dist/cjs/utils/ip.js +95 -4
  202. package/dist/cjs/utils/ip.js.map +1 -1
  203. package/dist/cjs/utils/is.d.ts +123 -0
  204. package/dist/cjs/utils/is.d.ts.map +1 -1
  205. package/dist/cjs/utils/is.js +126 -14
  206. package/dist/cjs/utils/is.js.map +1 -1
  207. package/dist/cjs/utils/json.d.ts +54 -0
  208. package/dist/cjs/utils/json.d.ts.map +1 -1
  209. package/dist/cjs/utils/json.js +62 -0
  210. package/dist/cjs/utils/json.js.map +1 -1
  211. package/dist/cjs/utils/pargv.d.ts +51 -0
  212. package/dist/cjs/utils/pargv.d.ts.map +1 -1
  213. package/dist/cjs/utils/pargv.js +141 -3
  214. package/dist/cjs/utils/pargv.js.map +1 -1
  215. package/dist/cjs/utils/port/index.d.ts +42 -0
  216. package/dist/cjs/utils/port/index.d.ts.map +1 -1
  217. package/dist/cjs/utils/port/index.js +130 -7
  218. package/dist/cjs/utils/port/index.js.map +1 -1
  219. package/dist/cjs/utils/type_check.d.ts +79 -0
  220. package/dist/cjs/utils/type_check.d.ts.map +1 -1
  221. package/dist/cjs/utils/type_check.js +87 -1
  222. package/dist/cjs/utils/type_check.js.map +1 -1
  223. package/dist/cjs/utils/wrap.d.ts +26 -0
  224. package/dist/cjs/utils/wrap.d.ts.map +1 -1
  225. package/dist/cjs/utils/wrap.js +47 -10
  226. package/dist/cjs/utils/wrap.js.map +1 -1
  227. package/dist/esm/app/application.d.ts +36 -1
  228. package/dist/esm/app/application.d.ts.map +1 -1
  229. package/dist/esm/app/application.js +49 -2
  230. package/dist/esm/app/application.js.map +1 -1
  231. package/dist/esm/app/boot.d.ts +56 -1
  232. package/dist/esm/app/boot.d.ts.map +1 -1
  233. package/dist/esm/app/boot.js +74 -11
  234. package/dist/esm/app/boot.js.map +1 -1
  235. package/dist/esm/app/dir.d.ts +10 -0
  236. package/dist/esm/app/dir.d.ts.map +1 -1
  237. package/dist/esm/app/dir.js +71 -10
  238. package/dist/esm/app/dir.js.map +1 -1
  239. package/dist/esm/app/events.d.ts +58 -2
  240. package/dist/esm/app/events.d.ts.map +1 -1
  241. package/dist/esm/app/events.js +92 -12
  242. package/dist/esm/app/events.js.map +1 -1
  243. package/dist/esm/config/config_loader.d.ts +44 -0
  244. package/dist/esm/config/config_loader.d.ts.map +1 -1
  245. package/dist/esm/config/config_loader.js +82 -1
  246. package/dist/esm/config/config_loader.js.map +1 -1
  247. package/dist/esm/config/default_config.d.ts +5 -0
  248. package/dist/esm/config/default_config.d.ts.map +1 -1
  249. package/dist/esm/config/default_config.js +98 -11
  250. package/dist/esm/config/default_config.js.map +1 -1
  251. package/dist/esm/config/index.d.ts +31 -1
  252. package/dist/esm/config/index.d.ts.map +1 -1
  253. package/dist/esm/config/index.js +52 -0
  254. package/dist/esm/config/index.js.map +1 -1
  255. package/dist/esm/const/channel.d.ts +17 -0
  256. package/dist/esm/const/channel.d.ts.map +1 -1
  257. package/dist/esm/const/channel.js +17 -0
  258. package/dist/esm/const/channel.js.map +1 -1
  259. package/dist/esm/controller/controller_loader.d.ts +20 -1
  260. package/dist/esm/controller/controller_loader.d.ts.map +1 -1
  261. package/dist/esm/controller/controller_loader.js +89 -9
  262. package/dist/esm/controller/controller_loader.js.map +1 -1
  263. package/dist/esm/controller/index.d.ts +32 -0
  264. package/dist/esm/controller/index.d.ts.map +1 -1
  265. package/dist/esm/controller/index.js +66 -0
  266. package/dist/esm/controller/index.js.map +1 -1
  267. package/dist/esm/core/loader/file_loader.d.ts +78 -27
  268. package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
  269. package/dist/esm/core/loader/file_loader.js +194 -68
  270. package/dist/esm/core/loader/file_loader.js.map +1 -1
  271. package/dist/esm/core/utils/index.d.ts +57 -2
  272. package/dist/esm/core/utils/index.d.ts.map +1 -1
  273. package/dist/esm/core/utils/index.js +87 -12
  274. package/dist/esm/core/utils/index.js.map +1 -1
  275. package/dist/esm/core/utils/timing.d.ts +47 -0
  276. package/dist/esm/core/utils/timing.d.ts.map +1 -1
  277. package/dist/esm/core/utils/timing.js +42 -2
  278. package/dist/esm/core/utils/timing.js.map +1 -1
  279. package/dist/esm/cross/cross.d.ts +81 -2
  280. package/dist/esm/cross/cross.d.ts.map +1 -1
  281. package/dist/esm/cross/cross.js +86 -16
  282. package/dist/esm/cross/cross.js.map +1 -1
  283. package/dist/esm/cross/crossProcess.d.ts +85 -14
  284. package/dist/esm/cross/crossProcess.d.ts.map +1 -1
  285. package/dist/esm/cross/crossProcess.js +85 -13
  286. package/dist/esm/cross/crossProcess.js.map +1 -1
  287. package/dist/esm/electron/app/index.d.ts +17 -1
  288. package/dist/esm/electron/app/index.d.ts.map +1 -1
  289. package/dist/esm/electron/app/index.js +27 -3
  290. package/dist/esm/electron/app/index.js.map +1 -1
  291. package/dist/esm/electron/index.d.ts +6 -0
  292. package/dist/esm/electron/index.d.ts.map +1 -1
  293. package/dist/esm/electron/index.js +16 -1
  294. package/dist/esm/electron/index.js.map +1 -1
  295. package/dist/esm/electron/window/index.d.ts +37 -0
  296. package/dist/esm/electron/window/index.d.ts.map +1 -1
  297. package/dist/esm/electron/window/index.js +144 -88
  298. package/dist/esm/electron/window/index.js.map +1 -1
  299. package/dist/esm/exception/index.d.ts +12 -0
  300. package/dist/esm/exception/index.d.ts.map +1 -1
  301. package/dist/esm/exception/index.js +67 -9
  302. package/dist/esm/exception/index.js.map +1 -1
  303. package/dist/esm/html/index.d.ts +19 -0
  304. package/dist/esm/html/index.d.ts.map +1 -1
  305. package/dist/esm/html/index.js +42 -0
  306. package/dist/esm/html/index.js.map +1 -1
  307. package/dist/esm/index.d.ts +35 -7
  308. package/dist/esm/index.d.ts.map +1 -1
  309. package/dist/esm/index.js +127 -80
  310. package/dist/esm/index.js.map +1 -1
  311. package/dist/esm/jobs/child/app.js +86 -25
  312. package/dist/esm/jobs/child/app.js.map +1 -1
  313. package/dist/esm/jobs/child/index.d.ts +5 -5
  314. package/dist/esm/jobs/child/index.js +5 -5
  315. package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
  316. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
  317. package/dist/esm/jobs/child/jobProcess.js +86 -11
  318. package/dist/esm/jobs/child/jobProcess.js.map +1 -1
  319. package/dist/esm/jobs/child-pool/index.d.ts +96 -0
  320. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
  321. package/dist/esm/jobs/child-pool/index.js +91 -4
  322. package/dist/esm/jobs/child-pool/index.js.map +1 -1
  323. package/dist/esm/jobs/index.d.ts +10 -0
  324. package/dist/esm/jobs/index.d.ts.map +1 -1
  325. package/dist/esm/jobs/index.js +10 -0
  326. package/dist/esm/jobs/index.js.map +1 -1
  327. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
  328. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  329. package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
  330. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
  331. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  332. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  333. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  334. package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
  335. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
  336. package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
  337. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  338. package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
  339. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  340. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  341. package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
  342. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
  343. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  344. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  345. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  346. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  347. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  348. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  349. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  350. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  351. package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
  352. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
  353. package/dist/esm/jobs/load-balancer/consts.js +22 -0
  354. package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
  355. package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
  356. package/dist/esm/jobs/load-balancer/index.js +18 -18
  357. package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
  358. package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
  359. package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
  360. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
  361. package/dist/esm/jobs/load-balancer/types.js +4 -0
  362. package/dist/esm/jobs/load-balancer/types.js.map +1 -1
  363. package/dist/esm/jobs/registry.d.ts +24 -0
  364. package/dist/esm/jobs/registry.d.ts.map +1 -0
  365. package/dist/esm/jobs/registry.js +52 -0
  366. package/dist/esm/jobs/registry.js.map +1 -0
  367. package/dist/esm/loader/index.d.ts +52 -0
  368. package/dist/esm/loader/index.d.ts.map +1 -1
  369. package/dist/esm/loader/index.js +79 -10
  370. package/dist/esm/loader/index.js.map +1 -1
  371. package/dist/esm/log/index.d.ts +41 -0
  372. package/dist/esm/log/index.d.ts.map +1 -1
  373. package/dist/esm/log/index.js +59 -20
  374. package/dist/esm/log/index.js.map +1 -1
  375. package/dist/esm/log/logger.d.ts +26 -0
  376. package/dist/esm/log/logger.d.ts.map +1 -1
  377. package/dist/esm/log/logger.js +122 -2
  378. package/dist/esm/log/logger.js.map +1 -1
  379. package/dist/esm/message/childMessage.d.ts +50 -0
  380. package/dist/esm/message/childMessage.d.ts.map +1 -1
  381. package/dist/esm/message/childMessage.js +83 -2
  382. package/dist/esm/message/childMessage.js.map +1 -1
  383. package/dist/esm/ps/index.d.ts +112 -0
  384. package/dist/esm/ps/index.d.ts.map +1 -1
  385. package/dist/esm/ps/index.js +175 -41
  386. package/dist/esm/ps/index.js.map +1 -1
  387. package/dist/esm/socket/httpServer.d.ts +58 -5
  388. package/dist/esm/socket/httpServer.d.ts.map +1 -1
  389. package/dist/esm/socket/httpServer.js +94 -28
  390. package/dist/esm/socket/httpServer.js.map +1 -1
  391. package/dist/esm/socket/index.d.ts +45 -3
  392. package/dist/esm/socket/index.d.ts.map +1 -1
  393. package/dist/esm/socket/index.js +50 -14
  394. package/dist/esm/socket/index.js.map +1 -1
  395. package/dist/esm/socket/ipcServer.d.ts +31 -1
  396. package/dist/esm/socket/ipcServer.d.ts.map +1 -1
  397. package/dist/esm/socket/ipcServer.js +60 -43
  398. package/dist/esm/socket/ipcServer.js.map +1 -1
  399. package/dist/esm/socket/socketServer.d.ts +32 -1
  400. package/dist/esm/socket/socketServer.d.ts.map +1 -1
  401. package/dist/esm/socket/socketServer.js +53 -14
  402. package/dist/esm/socket/socketServer.js.map +1 -1
  403. package/dist/esm/socket/utils.d.ts +13 -0
  404. package/dist/esm/socket/utils.d.ts.map +1 -0
  405. package/dist/esm/socket/utils.js +41 -0
  406. package/dist/esm/socket/utils.js.map +1 -0
  407. package/dist/esm/storage/sqliteStorage.d.ts +93 -4
  408. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
  409. package/dist/esm/storage/sqliteStorage.js +121 -9
  410. package/dist/esm/storage/sqliteStorage.js.map +1 -1
  411. package/dist/esm/types/index.d.ts +373 -5
  412. package/dist/esm/types/index.d.ts.map +1 -1
  413. package/dist/esm/utils/extend.d.ts +44 -1
  414. package/dist/esm/utils/extend.d.ts.map +1 -1
  415. package/dist/esm/utils/extend.js +67 -19
  416. package/dist/esm/utils/extend.js.map +1 -1
  417. package/dist/esm/utils/helper.d.ts +154 -1
  418. package/dist/esm/utils/helper.d.ts.map +1 -1
  419. package/dist/esm/utils/helper.js +205 -28
  420. package/dist/esm/utils/helper.js.map +1 -1
  421. package/dist/esm/utils/index.d.ts +93 -0
  422. package/dist/esm/utils/index.d.ts.map +1 -1
  423. package/dist/esm/utils/index.js +136 -12
  424. package/dist/esm/utils/index.js.map +1 -1
  425. package/dist/esm/utils/ip.d.ts +29 -0
  426. package/dist/esm/utils/ip.d.ts.map +1 -1
  427. package/dist/esm/utils/ip.js +95 -4
  428. package/dist/esm/utils/ip.js.map +1 -1
  429. package/dist/esm/utils/is.d.ts +123 -0
  430. package/dist/esm/utils/is.d.ts.map +1 -1
  431. package/dist/esm/utils/is.js +126 -14
  432. package/dist/esm/utils/is.js.map +1 -1
  433. package/dist/esm/utils/json.d.ts +54 -0
  434. package/dist/esm/utils/json.d.ts.map +1 -1
  435. package/dist/esm/utils/json.js +62 -0
  436. package/dist/esm/utils/json.js.map +1 -1
  437. package/dist/esm/utils/pargv.d.ts +51 -0
  438. package/dist/esm/utils/pargv.d.ts.map +1 -1
  439. package/dist/esm/utils/pargv.js +141 -3
  440. package/dist/esm/utils/pargv.js.map +1 -1
  441. package/dist/esm/utils/port/index.d.ts +42 -0
  442. package/dist/esm/utils/port/index.d.ts.map +1 -1
  443. package/dist/esm/utils/port/index.js +130 -7
  444. package/dist/esm/utils/port/index.js.map +1 -1
  445. package/dist/esm/utils/type_check.d.ts +79 -0
  446. package/dist/esm/utils/type_check.d.ts.map +1 -1
  447. package/dist/esm/utils/type_check.js +87 -1
  448. package/dist/esm/utils/type_check.js.map +1 -1
  449. package/dist/esm/utils/wrap.d.ts +26 -0
  450. package/dist/esm/utils/wrap.d.ts.map +1 -1
  451. package/dist/esm/utils/wrap.js +47 -10
  452. package/dist/esm/utils/wrap.js.map +1 -1
  453. package/package.json +13 -13
@@ -1,30 +1,126 @@
1
+ /**
2
+ * @module jobs/child-pool
3
+ * @description Child process pool manager. Maintains a set of child processes, distributes tasks
4
+ * through a load balancing algorithm, avoiding the overhead of frequent process creation and destruction.
5
+ *
6
+ * Core features:
7
+ * - Pool size: min=3, max=6, configurable
8
+ * - Load balancing: supports multiple algorithms (polling/weights/random, etc.), default is polling
9
+ * - Process binding: binds specific IDs to fixed processes via boundMap (e.g. session binding)
10
+ * - Auto cleanup: child processes are automatically removed from the pool on exit/error
11
+ *
12
+ * Usage:
13
+ * ```ts
14
+ * const pool = new ChildPoolJob();
15
+ * await pool.create(3); // Create 3 child processes
16
+ * await pool.run('service/job'); // Load balancer selects a process to execute
17
+ * ```
18
+ */
1
19
  import { EventEmitter } from 'events';
2
20
  import { LoadBalancer } from '../load-balancer/index.js';
3
21
  import { JobProcess } from '../child/jobProcess.js';
4
22
  import type { JobsConfig } from '../../types/index.js';
23
+ /** Child process pool options */
5
24
  export interface ChildPoolOptions {
25
+ /** Weight values for each process (used by weighted load balancing algorithms) */
6
26
  weights?: number[];
7
27
  }
28
+ /**
29
+ * ChildPoolJob - Child process pool
30
+ *
31
+ * Manages a set of child processes, distributes tasks through LoadBalancer.
32
+ * Inherits EventEmitter, listens for child process exit/error events for auto cleanup.
33
+ */
8
34
  export declare class ChildPoolJob extends EventEmitter {
35
+ /** Task configuration */
9
36
  config: JobsConfig;
37
+ /** Binding map: boundId -> pid (binds specific IDs to fixed processes) */
10
38
  boundMap: Map<string | number, number>;
39
+ /** Child process pool: pid -> JobProcess */
11
40
  children: Record<number, JobProcess>;
41
+ /** Minimum number of processes */
12
42
  min: number;
43
+ /** Maximum number of processes */
13
44
  max: number;
45
+ /** Load balancing strategy name */
14
46
  strategy: string;
47
+ /** Weight array for each process */
15
48
  weights: number[];
49
+ /** Load balancer instance */
16
50
  LB: LoadBalancer;
17
51
  constructor(opt?: ChildPoolOptions);
52
+ /**
53
+ * Initialize event listeners
54
+ *
55
+ * Automatically removes child processes from the pool and load balancer on exit or error.
56
+ */
18
57
  _initEvents(): void;
58
+ /**
59
+ * Remove a child process from the pool
60
+ *
61
+ * Removes from both children map and load balancer.
62
+ */
19
63
  _removeChild(pid: number): void;
64
+ /**
65
+ * Create a specified number of child processes
66
+ *
67
+ * New processes are added to the pool and load balancer.
68
+ * The count is limited by max; excess processes will not be created.
69
+ *
70
+ * @param number - Number of processes to create
71
+ * @returns List of all process PIDs after creation
72
+ * @throws Throws an error if the count is invalid or exceeds the maximum limit
73
+ */
20
74
  create(number?: number): Promise<string[]>;
75
+ /**
76
+ * Registration handling after child process creation
77
+ *
78
+ * Adds the process to the children map and load balancer.
79
+ */
21
80
  _childCreated(childProcess: JobProcess): void;
81
+ /**
82
+ * Execute a task file
83
+ *
84
+ * Selects a child process via the load balancer and sends a run command to execute the task.
85
+ *
86
+ * @param filepath - Task file path
87
+ * @param params - Task parameters
88
+ * @returns The child process instance executing the task
89
+ */
22
90
  run(filepath: string, params?: Record<string, unknown>): Promise<JobProcess>;
91
+ /**
92
+ * Asynchronously execute a task file (alias for run)
93
+ */
23
94
  runPromise(filepath: string, params?: Record<string, unknown>): Promise<JobProcess>;
95
+ /**
96
+ * Get a bound child process
97
+ *
98
+ * The same boundId is always assigned to the same child process, suitable for session binding scenarios.
99
+ * If the bound process no longer exists, a new process is reassigned.
100
+ *
101
+ * @param boundId - Binding identifier (e.g. user ID, session ID)
102
+ * @returns Child process instance
103
+ */
24
104
  getBoundChild(boundId: string | number): Promise<JobProcess>;
105
+ /** Get a child process by PID */
25
106
  getChildByPid(pid: number): JobProcess | null;
107
+ /**
108
+ * Get an available child process
109
+ *
110
+ * If the pool is empty, automatically creates one.
111
+ * Uses the load balancer to select a process.
112
+ *
113
+ * @returns Child process instance
114
+ * @throws Throws an error if retrieval fails
115
+ */
26
116
  getChild(): Promise<JobProcess>;
117
+ /** Get PID list of all child processes */
27
118
  getPids(): string[];
119
+ /**
120
+ * Kill all child processes
121
+ *
122
+ * @param type - Kill mode: 'parallel' kills all at once, 'sequence' kills one per second
123
+ */
28
124
  killAll(type?: 'sequence' | 'parallel'): void;
29
125
  }
30
126
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jobs/child-pool/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAA0B,MAAM,wBAAwB,CAAC;AAI5E,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,sBAAsB,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC5C,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,EAAE,EAAE,YAAY,CAAC;gBAEL,GAAG,GAAE,gBAAqB;IAgCtC,WAAW,IAAI,IAAI;IAanB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUzB,MAAM,CAAC,MAAM,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2B3C,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAevC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAShF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvF,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAclE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIvC,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAwBrC,OAAO,IAAI,MAAM,EAAE;IAInB,OAAO,CAAC,IAAI,GAAE,UAAU,GAAG,UAAuB,GAAG,IAAI;CAgB1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jobs/child-pool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAA0B,MAAM,wBAAwB,CAAC;AAI5E,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,sBAAsB,CAAC;AAE7E,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B;IAC7B,EAAE,EAAE,YAAY,CAAC;gBAEL,GAAG,GAAE,gBAAqB;IAiCtC;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAanB;;;;OAIG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU/B;;;;;;;;;OASG;IACG,MAAM,CAAC,MAAM,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2B3C;;;;OAIG;IACH,aAAa,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI;IAc7C;;;;;;;;OAQG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQtF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7F;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAelE,iCAAiC;IACjC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI7C;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IA0BrC,0CAA0C;IAC1C,OAAO,IAAI,MAAM,EAAE;IAInB;;;;OAIG;IACH,OAAO,CAAC,IAAI,GAAE,UAAU,GAAG,UAAuB,GAAG,IAAI;CAgB1D"}
@@ -1,6 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChildPoolJob = void 0;
4
+ /**
5
+ * @module jobs/child-pool
6
+ * @description Child process pool manager. Maintains a set of child processes, distributes tasks
7
+ * through a load balancing algorithm, avoiding the overhead of frequent process creation and destruction.
8
+ *
9
+ * Core features:
10
+ * - Pool size: min=3, max=6, configurable
11
+ * - Load balancing: supports multiple algorithms (polling/weights/random, etc.), default is polling
12
+ * - Process binding: binds specific IDs to fixed processes via boundMap (e.g. session binding)
13
+ * - Auto cleanup: child processes are automatically removed from the pool on exit/error
14
+ *
15
+ * Usage:
16
+ * ```ts
17
+ * const pool = new ChildPoolJob();
18
+ * await pool.create(3); // Create 3 child processes
19
+ * await pool.run('service/job'); // Load balancer selects a process to execute
20
+ * ```
21
+ */
4
22
  const events_1 = require("events");
5
23
  const index_js_1 = require("../load-balancer/index.js");
6
24
  const index_js_2 = require("../../loader/index.js");
@@ -8,6 +26,12 @@ const jobProcess_js_1 = require("../child/jobProcess.js");
8
26
  const channel_js_1 = require("../../const/channel.js");
9
27
  const helper_js_1 = require("../../utils/helper.js");
10
28
  const index_js_3 = require("../../config/index.js");
29
+ /**
30
+ * ChildPoolJob - Child process pool
31
+ *
32
+ * Manages a set of child processes, distributes tasks through LoadBalancer.
33
+ * Inherits EventEmitter, listens for child process exit/error events for auto cleanup.
34
+ */
11
35
  class ChildPoolJob extends events_1.EventEmitter {
12
36
  constructor(opt = {}) {
13
37
  super();
@@ -21,6 +45,7 @@ class ChildPoolJob extends events_1.EventEmitter {
21
45
  this.min = 3;
22
46
  this.max = 6;
23
47
  this.strategy = 'polling';
48
+ // Default weight is 1, can be customized via configuration
24
49
  this.weights = new Array(this.max).fill(0).map((_v, i) => {
25
50
  const w = options.weights[i];
26
51
  return (0, helper_js_1.validValue)(w) ? w : 1;
@@ -36,6 +61,11 @@ class ChildPoolJob extends events_1.EventEmitter {
36
61
  }
37
62
  this._initEvents();
38
63
  }
64
+ /**
65
+ * Initialize event listeners
66
+ *
67
+ * Automatically removes child processes from the pool and load balancer on exit or error.
68
+ */
39
69
  _initEvents() {
40
70
  this.on(channel_js_1.Events.childProcessExit, (data) => {
41
71
  if (data.pid !== undefined) {
@@ -48,6 +78,11 @@ class ChildPoolJob extends events_1.EventEmitter {
48
78
  }
49
79
  });
50
80
  }
81
+ /**
82
+ * Remove a child process from the pool
83
+ *
84
+ * Removes from both children map and load balancer.
85
+ */
51
86
  _removeChild(pid) {
52
87
  const length = Object.keys(this.children).length;
53
88
  const lbOpt = {
@@ -57,6 +92,16 @@ class ChildPoolJob extends events_1.EventEmitter {
57
92
  this.LB.del(lbOpt);
58
93
  delete this.children[pid];
59
94
  }
95
+ /**
96
+ * Create a specified number of child processes
97
+ *
98
+ * New processes are added to the pool and load balancer.
99
+ * The count is limited by max; excess processes will not be created.
100
+ *
101
+ * @param number - Number of processes to create
102
+ * @returns List of all process PIDs after creation
103
+ * @throws Throws an error if the count is invalid or exceeds the maximum limit
104
+ */
60
105
  async create(number = 3) {
61
106
  if (number < 0 || number > this.max) {
62
107
  throw new Error('[ee-core] [jobs/child-pool] The number is invalid !');
@@ -65,6 +110,7 @@ class ChildPoolJob extends events_1.EventEmitter {
65
110
  if (currentNumber > this.max) {
66
111
  throw new Error(`[ee-core] [jobs/child-pool] The number of current processes number: ${currentNumber} is greater than the maximum: ${this.max} !`);
67
112
  }
113
+ // Adjust creation count to not exceed maximum limit
68
114
  if (number + currentNumber > this.max) {
69
115
  number = this.max - currentNumber;
70
116
  }
@@ -79,7 +125,11 @@ class ChildPoolJob extends events_1.EventEmitter {
79
125
  }
80
126
  return Object.keys(this.children);
81
127
  }
82
- // Post creation processing of child processes
128
+ /**
129
+ * Registration handling after child process creation
130
+ *
131
+ * Adds the process to the children map and load balancer.
132
+ */
83
133
  _childCreated(childProcess) {
84
134
  const pid = childProcess.pid;
85
135
  if (pid === undefined)
@@ -92,18 +142,36 @@ class ChildPoolJob extends events_1.EventEmitter {
92
142
  };
93
143
  this.LB.add(lbTask);
94
144
  }
95
- // Execute a job file
145
+ /**
146
+ * Execute a task file
147
+ *
148
+ * Selects a child process via the load balancer and sends a run command to execute the task.
149
+ *
150
+ * @param filepath - Task file path
151
+ * @param params - Task parameters
152
+ * @returns The child process instance executing the task
153
+ */
96
154
  async run(filepath, params = {}) {
97
155
  const jobPath = (0, index_js_2.getFullpath)(filepath);
98
156
  const childProcess = await this.getChild();
99
157
  childProcess.dispatch('run', jobPath, params);
100
158
  return childProcess;
101
159
  }
102
- // Asynchronous execution of a job file
160
+ /**
161
+ * Asynchronously execute a task file (alias for run)
162
+ */
103
163
  async runPromise(filepath, params = {}) {
104
164
  return this.run(filepath, params);
105
165
  }
106
- // Get the bound process object
166
+ /**
167
+ * Get a bound child process
168
+ *
169
+ * The same boundId is always assigned to the same child process, suitable for session binding scenarios.
170
+ * If the bound process no longer exists, a new process is reassigned.
171
+ *
172
+ * @param boundId - Binding identifier (e.g. user ID, session ID)
173
+ * @returns Child process instance
174
+ */
107
175
  async getBoundChild(boundId) {
108
176
  let proc;
109
177
  const boundPid = this.boundMap.get(boundId);
@@ -112,17 +180,29 @@ class ChildPoolJob extends events_1.EventEmitter {
112
180
  if (proc)
113
181
  return proc;
114
182
  }
183
+ // Bound process does not exist, retrieve and bind a new one
115
184
  proc = await this.getChild();
116
185
  this.boundMap.set(boundId, proc.pid ?? 0);
117
186
  return proc;
118
187
  }
188
+ /** Get a child process by PID */
119
189
  getChildByPid(pid) {
120
190
  return this.children[pid] || null;
121
191
  }
192
+ /**
193
+ * Get an available child process
194
+ *
195
+ * If the pool is empty, automatically creates one.
196
+ * Uses the load balancer to select a process.
197
+ *
198
+ * @returns Child process instance
199
+ * @throws Throws an error if retrieval fails
200
+ */
122
201
  async getChild() {
123
202
  let proc;
124
203
  const currentPids = Object.keys(this.children);
125
204
  if (currentPids.length === 0) {
205
+ // Pool is empty, auto-create
126
206
  const subIds = await this.create(1);
127
207
  const firstId = subIds[0];
128
208
  if (firstId) {
@@ -130,6 +210,7 @@ class ChildPoolJob extends events_1.EventEmitter {
130
210
  }
131
211
  }
132
212
  else {
213
+ // Select via load balancer
133
214
  const picked = this.LB.pickOne();
134
215
  if (picked && typeof picked.id === 'number') {
135
216
  proc = this.children[picked.id];
@@ -140,9 +221,15 @@ class ChildPoolJob extends events_1.EventEmitter {
140
221
  }
141
222
  return proc;
142
223
  }
224
+ /** Get PID list of all child processes */
143
225
  getPids() {
144
226
  return Object.keys(this.children);
145
227
  }
228
+ /**
229
+ * Kill all child processes
230
+ *
231
+ * @param type - Kill mode: 'parallel' kills all at once, 'sequence' kills one per second
232
+ */
146
233
  killAll(type = 'parallel') {
147
234
  let i = 1;
148
235
  Object.keys(this.children).forEach(key => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jobs/child-pool/index.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,wDAAyD;AACzD,oDAAoD;AACpD,0DAA4E;AAC5E,uDAAgD;AAChD,qDAAmD;AACnD,oDAAkD;AAOlD,MAAa,YAAa,SAAQ,qBAAY;IAU5C,YAAY,MAAwB,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,EAAc;YACvB,GAAG,GAAG;SACP,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAA,sBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,uBAAY,CAAC,SAAS,CAAC,OAAO;YACzC,OAAO,EAAE,EAAsC;SAChD,CAAC;QACF,IAAI,CAAC,EAAE,GAAG,IAAI,uBAAY,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAC,IAA8B,CAAC;QACvD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,EAAE,CAAC,mBAAM,CAAC,gBAAgB,EAAE,CAAC,IAA0B,EAAE,EAAE;YAC9D,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,mBAAM,CAAC,iBAAiB,EAAE,CAAC,IAA0B,EAAE,EAAE;YAC/D,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjD,MAAM,KAAK,GAAG;YACZ,EAAE,EAAE,GAAG;YACP,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;SACtC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QACrB,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACxD,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uEAAuE,aAAa,iCAAiC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACrJ,CAAC;QAED,IAAI,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAsB;YACjC,WAAW,EAAE;gBACX,IAAI,EAAE,cAAc;aACrB;SACF,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,0BAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,8CAA8C;IAC9C,aAAa,CAAC,YAAwB;QACpC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;QAC7B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjD,MAAM,MAAM,GAAG;YACb,EAAE,EAAE,GAAG;YACP,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;SACtC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,SAAkC,EAAE;QAC9D,MAAM,OAAO,GAAG,IAAA,sBAAW,EAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAiB,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,SAAkC,EAAE;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,aAAa,CAAC,OAAwB;QAC1C,IAAI,IAA4B,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAA4B,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC5C,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,OAAgC,UAAU;QAChD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACb,CAAC,EAAE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvLD,oCAuLC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jobs/child-pool/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * @module jobs
3
+ * @description Background task module entry. Provides child process task management and load balancing capabilities.
4
+ *
5
+ * Core components:
6
+ * - ChildJob: Single task execution, creates a new child process each time
7
+ * - ChildPoolJob: Process pool, reuses child processes, distributes tasks via load balancing
8
+ * - LoadBalancer: Load balancer, supports multiple scheduling algorithms
9
+ * - AlgorithmType: Algorithm type constants
10
+ */
1
11
  export { ChildJob } from './child/index.js';
2
12
  export { ChildPoolJob } from './child-pool/index.js';
3
13
  export { LoadBalancer } from './load-balancer/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jobs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3F,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AlgorithmType = exports.LoadBalancer = exports.ChildPoolJob = exports.ChildJob = void 0;
4
+ /**
5
+ * @module jobs
6
+ * @description Background task module entry. Provides child process task management and load balancing capabilities.
7
+ *
8
+ * Core components:
9
+ * - ChildJob: Single task execution, creates a new child process each time
10
+ * - ChildPoolJob: Process pool, reuses child processes, distributes tasks via load balancing
11
+ * - LoadBalancer: Load balancer, supports multiple scheduling algorithms
12
+ * - AlgorithmType: Algorithm type constants
13
+ */
4
14
  var index_js_1 = require("./child/index.js");
5
15
  Object.defineProperty(exports, "ChildJob", { enumerable: true, get: function () { return index_js_1.ChildJob; } });
6
16
  var index_js_2 = require("./child-pool/index.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jobs/index.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,kDAAqD;AAA5C,wGAAA,YAAY,OAAA;AACrB,qDAAwD;AAA/C,wGAAA,YAAY,OAAA;AACrB,uDAA0D;AAAjD,0GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/jobs/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,kDAAqD;AAA5C,wGAAA,YAAY,OAAA;AACrB,qDAAwD;AAA/C,wGAAA,YAAY,OAAA;AACrB,uDAA0D;AAAjD,0GAAA,aAAa,OAAA"}
@@ -1,5 +1,7 @@
1
1
  import type { LoadBalancerTarget } from '../types.js';
2
+ /** Algorithm function type */
2
3
  export type AlgorithmFn = (tasks: LoadBalancerTarget[], ...args: unknown[]) => LoadBalancerTarget | null;
4
+ /** Algorithm name -> algorithm function mapping */
3
5
  declare const algorithms: Record<string, AlgorithmFn>;
4
6
  export default algorithms;
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,kBAAkB,EAAE,EAC3B,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,kBAAkB,GAAG,IAAI,CAAC;AAE/B,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAS3C,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,kBAAkB,EAAE,EAC3B,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,kBAAkB,GAAG,IAAI,CAAC;AAE/B,mDAAmD;AACnD,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAS3C,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -3,6 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ /**
7
+ * @module jobs/load-balancer/algorithm
8
+ * @description Load balancing algorithm registry. Maps algorithm type names to their corresponding
9
+ * algorithm functions, for use by the Scheduler.
10
+ */
6
11
  const consts_js_1 = require("../consts.js");
7
12
  const polling_js_1 = __importDefault(require("./polling.js"));
8
13
  const weights_js_1 = __importDefault(require("./weights.js"));
@@ -12,6 +17,7 @@ const minimumConnection_js_1 = __importDefault(require("./minimumConnection.js")
12
17
  const weightsPolling_js_1 = __importDefault(require("./weightsPolling.js"));
13
18
  const weightsRandom_js_1 = __importDefault(require("./weightsRandom.js"));
14
19
  const weightsMinimumConnection_js_1 = __importDefault(require("./weightsMinimumConnection.js"));
20
+ /** Algorithm name -> algorithm function mapping */
15
21
  const algorithms = {
16
22
  [consts_js_1.AlgorithmType.polling]: polling_js_1.default,
17
23
  [consts_js_1.AlgorithmType.weights]: weights_js_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/index.ts"],"names":[],"mappings":";;;;;AAAA,4CAA6C;AAC7C,8DAAmC;AACnC,8DAAmC;AACnC,4DAAiC;AACjC,8DAAmC;AACnC,kFAAuD;AACvD,4EAAiD;AACjD,0EAA+C;AAC/C,gGAAqE;AAQrE,MAAM,UAAU,GAAgC;IAC9C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,MAAM,CAAC,EAAE,mBAAqB;IAC7C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,iBAAiB,CAAC,EAAE,8BAAgC;IACnE,CAAC,yBAAa,CAAC,cAAc,CAAC,EAAE,2BAA6B;IAC7D,CAAC,yBAAa,CAAC,aAAa,CAAC,EAAE,0BAA4B;IAC3D,CAAC,yBAAa,CAAC,wBAAwB,CAAC,EAAE,qCAAuC;CAClF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/index.ts"],"names":[],"mappings":";;;;;AAAA;;;;GAIG;AACH,4CAA6C;AAC7C,8DAAmC;AACnC,8DAAmC;AACnC,4DAAiC;AACjC,8DAAmC;AACnC,kFAAuD;AACvD,4EAAiD;AACjD,0EAA+C;AAC/C,gGAAqE;AASrE,mDAAmD;AACnD,MAAM,UAAU,GAAgC;IAC9C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,MAAM,CAAC,EAAE,mBAAqB;IAC7C,CAAC,yBAAa,CAAC,OAAO,CAAC,EAAE,oBAAsB;IAC/C,CAAC,yBAAa,CAAC,iBAAiB,CAAC,EAAE,8BAAgC;IACnE,CAAC,yBAAa,CAAC,cAAc,CAAC,EAAE,2BAA6B;IAC7D,CAAC,yBAAa,CAAC,aAAa,CAAC,EAAE,0BAA4B;IAC3D,CAAC,yBAAa,CAAC,wBAAwB,CAAC,EAAE,qCAAuC;CAClF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget } from '../types.js';
2
2
  /**
3
- * 最小连接数算法
3
+ * Least connections algorithm
4
4
  */
5
5
  export default function minimumConnection(tasks: LoadBalancerTarget[], conMap?: Record<string | number, number>): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=minimumConnection.d.ts.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = minimumConnection;
4
4
  /**
5
- * 最小连接数算法
5
+ * Least connections algorithm
6
6
  */
7
7
  function minimumConnection(tasks, conMap = {}) {
8
8
  if (tasks.length < 2)
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget, LoadBalancerParams } from '../types.js';
2
2
  /**
3
- * 轮询算法
3
+ * Round-robin polling algorithm
4
4
  */
5
5
  export default function polling(tasks: LoadBalancerTarget[], currentIndex: number, context: LoadBalancerParams): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=polling.d.ts.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = polling;
4
4
  /**
5
- * 轮询算法
5
+ * Round-robin polling algorithm
6
6
  */
7
7
  function polling(tasks, currentIndex, context) {
8
8
  if (!tasks.length)
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget } from '../types.js';
2
2
  /**
3
- * 随机算法
3
+ * Random selection algorithm
4
4
  */
5
5
  export default function random(tasks: LoadBalancerTarget[]): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=random.d.ts.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = random;
4
4
  /**
5
- * 随机算法
5
+ * Random selection algorithm
6
6
  */
7
7
  function random(tasks) {
8
8
  const length = tasks.length;
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget } from '../types.js';
2
2
  /**
3
- * 指定绑定算法
3
+ * Specify (bind by ID) algorithm
4
4
  */
5
5
  export default function specify(tasks: LoadBalancerTarget[], id: string | number): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=specify.d.ts.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = specify;
4
4
  /**
5
- * 指定绑定算法
5
+ * Specify (bind by ID) algorithm
6
6
  */
7
7
  function specify(tasks, id) {
8
8
  let task;
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget, LoadBalancerParams } from '../types.js';
2
2
  /**
3
- * 权重算法
3
+ * Weighted algorithm
4
4
  */
5
5
  export default function weights(tasks: LoadBalancerTarget[], weightTotal: number, context: LoadBalancerParams): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=weights.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weights.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weights.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,EAAE,kBAAkB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,GAAG,IAAI,CAwB3B"}
1
+ {"version":3,"file":"weights.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weights.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,EAAE,kBAAkB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,GAAG,IAAI,CAoB3B"}
@@ -2,23 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = weights;
4
4
  /**
5
- * 权重算法
5
+ * Weighted algorithm
6
6
  */
7
7
  function weights(tasks, weightTotal, context) {
8
8
  if (!tasks.length)
9
9
  return null;
10
- const first = tasks[0];
11
- if (!first)
12
- return null;
13
- let max = first.weight || 0;
10
+ let max = -Infinity;
14
11
  let maxIndex = 0;
15
- let sum;
16
12
  for (let i = 0; i < tasks.length; i++) {
17
13
  const task = tasks[i];
18
14
  if (!task)
19
15
  continue;
20
- sum = (task.weight || 0) + Math.random() * weightTotal;
21
- if (sum >= max) {
16
+ const sum = (task.weight || 0) + Math.random() * weightTotal;
17
+ if (sum > max) {
22
18
  max = sum;
23
19
  maxIndex = i;
24
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weights.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weights.ts"],"names":[],"mappings":";;AAKA,0BA4BC;AA/BD;;GAEG;AACH,SAAwB,OAAO,CAC7B,KAA2B,EAC3B,WAAmB,EACnB,OAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,GAAW,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC;YACV,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"weights.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weights.ts"],"names":[],"mappings":";;AAKA,0BAwBC;AA3BD;;GAEG;AACH,SAAwB,OAAO,CAC7B,KAA2B,EAC3B,WAAmB,EACnB,OAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;QAC7D,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACd,GAAG,GAAG,GAAG,CAAC;YACV,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { LoadBalancerTarget, LoadBalancerParams } from '../types.js';
2
2
  /**
3
- * 权重最小连接数算法
3
+ * Weighted least connections algorithm
4
4
  */
5
5
  export default function weightsMinimumConnection(tasks: LoadBalancerTarget[], weightTotal: number, connectionsMap: Record<string | number, number>, context: LoadBalancerParams): LoadBalancerTarget | null;
6
6
  //# sourceMappingURL=weightsMinimumConnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"weightsMinimumConnection.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weightsMinimumConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,kBAAkB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAC/C,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,GAAG,IAAI,CAgC3B"}
1
+ {"version":3,"file":"weightsMinimumConnection.d.ts","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weightsMinimumConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,kBAAkB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAC/C,OAAO,EAAE,kBAAkB,GAC1B,kBAAkB,GAAG,IAAI,CA4B3B"}
@@ -2,17 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = weightsMinimumConnection;
4
4
  /**
5
- * 权重最小连接数算法
5
+ * Weighted least connections algorithm
6
6
  */
7
7
  function weightsMinimumConnection(tasks, weightTotal, connectionsMap, context) {
8
8
  if (!tasks.length)
9
9
  return null;
10
- const first = tasks[0];
11
- if (!first)
12
- return null;
13
- let min = first.weight || 0;
10
+ let min = Infinity;
14
11
  let minIndex = 0;
15
- let sum;
16
12
  const connectionsTotal = tasks.reduce((total, cur) => {
17
13
  total += connectionsMap[cur.id] || 0;
18
14
  return total;
@@ -21,11 +17,10 @@ function weightsMinimumConnection(tasks, weightTotal, connectionsMap, context) {
21
17
  const task = tasks[i];
22
18
  if (!task)
23
19
  continue;
24
- sum =
25
- (task.weight || 0) +
26
- Math.random() * weightTotal +
27
- (((connectionsMap[task.id] || 0) * weightTotal) / (connectionsTotal || 1));
28
- if (sum <= min) {
20
+ const sum = (task.weight || 0) +
21
+ Math.random() * weightTotal +
22
+ (((connectionsMap[task.id] || 0) * weightTotal) / (connectionsTotal || 1));
23
+ if (sum < min) {
29
24
  min = sum;
30
25
  minIndex = i;
31
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weightsMinimumConnection.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weightsMinimumConnection.ts"],"names":[],"mappings":";;AAKA,2CAqCC;AAxCD;;GAEG;AACH,SAAwB,wBAAwB,CAC9C,KAA2B,EAC3B,WAAmB,EACnB,cAA+C,EAC/C,OAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,GAAW,CAAC;IAEhB,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACnD,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,GAAG;YACD,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW;gBAC3B,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC;YACV,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"weightsMinimumConnection.js","sourceRoot":"","sources":["../../../../../src/jobs/load-balancer/algorithm/weightsMinimumConnection.ts"],"names":[],"mappings":";;AAKA,2CAiCC;AApCD;;GAEG;AACH,SAAwB,wBAAwB,CAC9C,KAA2B,EAC3B,WAAmB,EACnB,cAA+C,EAC/C,OAA2B;IAE3B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACnD,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GACP,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW;YAC3B,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACd,GAAG,GAAG,GAAG,CAAC;YACV,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,WAAW,IAAI,WAAW,GAAG,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}