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.
- package/dist/cjs/app/application.d.ts +36 -1
- package/dist/cjs/app/application.d.ts.map +1 -1
- package/dist/cjs/app/application.js +49 -2
- package/dist/cjs/app/application.js.map +1 -1
- package/dist/cjs/app/boot.d.ts +56 -1
- package/dist/cjs/app/boot.d.ts.map +1 -1
- package/dist/cjs/app/boot.js +74 -11
- package/dist/cjs/app/boot.js.map +1 -1
- package/dist/cjs/app/dir.d.ts +10 -0
- package/dist/cjs/app/dir.d.ts.map +1 -1
- package/dist/cjs/app/dir.js +71 -10
- package/dist/cjs/app/dir.js.map +1 -1
- package/dist/cjs/app/events.d.ts +58 -2
- package/dist/cjs/app/events.d.ts.map +1 -1
- package/dist/cjs/app/events.js +92 -12
- package/dist/cjs/app/events.js.map +1 -1
- package/dist/cjs/config/config_loader.d.ts +44 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -1
- package/dist/cjs/config/config_loader.js +82 -1
- package/dist/cjs/config/config_loader.js.map +1 -1
- package/dist/cjs/config/default_config.d.ts +5 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -1
- package/dist/cjs/config/default_config.js +98 -11
- package/dist/cjs/config/default_config.js.map +1 -1
- package/dist/cjs/config/index.d.ts +31 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +52 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/const/channel.d.ts +17 -0
- package/dist/cjs/const/channel.d.ts.map +1 -1
- package/dist/cjs/const/channel.js +17 -0
- package/dist/cjs/const/channel.js.map +1 -1
- package/dist/cjs/controller/controller_loader.d.ts +20 -1
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
- package/dist/cjs/controller/controller_loader.js +89 -9
- package/dist/cjs/controller/controller_loader.js.map +1 -1
- package/dist/cjs/controller/index.d.ts +32 -0
- package/dist/cjs/controller/index.d.ts.map +1 -1
- package/dist/cjs/controller/index.js +66 -0
- package/dist/cjs/controller/index.js.map +1 -1
- package/dist/cjs/core/loader/file_loader.d.ts +78 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +194 -68
- package/dist/cjs/core/loader/file_loader.js.map +1 -1
- package/dist/cjs/core/utils/index.d.ts +57 -2
- package/dist/cjs/core/utils/index.d.ts.map +1 -1
- package/dist/cjs/core/utils/index.js +120 -12
- package/dist/cjs/core/utils/index.js.map +1 -1
- package/dist/cjs/core/utils/timing.d.ts +47 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -1
- package/dist/cjs/core/utils/timing.js +42 -2
- package/dist/cjs/core/utils/timing.js.map +1 -1
- package/dist/cjs/cross/cross.d.ts +81 -2
- package/dist/cjs/cross/cross.d.ts.map +1 -1
- package/dist/cjs/cross/cross.js +86 -16
- package/dist/cjs/cross/cross.js.map +1 -1
- package/dist/cjs/cross/crossProcess.d.ts +85 -14
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
- package/dist/cjs/cross/crossProcess.js +85 -13
- package/dist/cjs/cross/crossProcess.js.map +1 -1
- package/dist/cjs/electron/app/index.d.ts +17 -1
- package/dist/cjs/electron/app/index.d.ts.map +1 -1
- package/dist/cjs/electron/app/index.js +27 -3
- package/dist/cjs/electron/app/index.js.map +1 -1
- package/dist/cjs/electron/index.d.ts +6 -0
- package/dist/cjs/electron/index.d.ts.map +1 -1
- package/dist/cjs/electron/index.js +16 -1
- package/dist/cjs/electron/index.js.map +1 -1
- package/dist/cjs/electron/window/index.d.ts +37 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +144 -88
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/exception/index.d.ts +12 -0
- package/dist/cjs/exception/index.d.ts.map +1 -1
- package/dist/cjs/exception/index.js +67 -9
- package/dist/cjs/exception/index.js.map +1 -1
- package/dist/cjs/html/index.d.ts +19 -0
- package/dist/cjs/html/index.d.ts.map +1 -1
- package/dist/cjs/html/index.js +42 -0
- package/dist/cjs/html/index.js.map +1 -1
- package/dist/cjs/index.d.ts +35 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +127 -80
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jobs/child/app.js +86 -25
- package/dist/cjs/jobs/child/app.js.map +1 -1
- package/dist/cjs/jobs/child/index.d.ts +5 -5
- package/dist/cjs/jobs/child/index.js +5 -5
- package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +86 -11
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
- package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/cjs/jobs/child-pool/index.js +91 -4
- package/dist/cjs/jobs/child-pool/index.js.map +1 -1
- package/dist/cjs/jobs/index.d.ts +10 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -1
- package/dist/cjs/jobs/index.js +10 -0
- package/dist/cjs/jobs/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/consts.js +22 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
- package/dist/cjs/jobs/load-balancer/index.js +18 -18
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
- package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/types.js +4 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +52 -0
- package/dist/cjs/loader/index.d.ts.map +1 -1
- package/dist/cjs/loader/index.js +79 -10
- package/dist/cjs/loader/index.js.map +1 -1
- package/dist/cjs/log/index.d.ts +41 -0
- package/dist/cjs/log/index.d.ts.map +1 -1
- package/dist/cjs/log/index.js +59 -20
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.d.ts +26 -0
- package/dist/cjs/log/logger.d.ts.map +1 -1
- package/dist/cjs/log/logger.js +122 -2
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/message/childMessage.d.ts +50 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -1
- package/dist/cjs/message/childMessage.js +83 -2
- package/dist/cjs/message/childMessage.js.map +1 -1
- package/dist/cjs/ps/index.d.ts +112 -0
- package/dist/cjs/ps/index.d.ts.map +1 -1
- package/dist/cjs/ps/index.js +175 -41
- package/dist/cjs/ps/index.js.map +1 -1
- package/dist/cjs/socket/httpServer.d.ts +58 -5
- package/dist/cjs/socket/httpServer.d.ts.map +1 -1
- package/dist/cjs/socket/httpServer.js +94 -28
- package/dist/cjs/socket/httpServer.js.map +1 -1
- package/dist/cjs/socket/index.d.ts +45 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +50 -14
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/cjs/socket/ipcServer.d.ts +31 -1
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
- package/dist/cjs/socket/ipcServer.js +60 -43
- package/dist/cjs/socket/ipcServer.js.map +1 -1
- package/dist/cjs/socket/socketServer.d.ts +32 -1
- package/dist/cjs/socket/socketServer.d.ts.map +1 -1
- package/dist/cjs/socket/socketServer.js +53 -14
- package/dist/cjs/socket/socketServer.js.map +1 -1
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/cjs/storage/sqliteStorage.js +121 -9
- package/dist/cjs/storage/sqliteStorage.js.map +1 -1
- package/dist/cjs/types/index.d.ts +373 -5
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/extend.d.ts +44 -1
- package/dist/cjs/utils/extend.d.ts.map +1 -1
- package/dist/cjs/utils/extend.js +67 -19
- package/dist/cjs/utils/extend.js.map +1 -1
- package/dist/cjs/utils/helper.d.ts +154 -1
- package/dist/cjs/utils/helper.d.ts.map +1 -1
- package/dist/cjs/utils/helper.js +205 -28
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +93 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +136 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ip.d.ts +29 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -1
- package/dist/cjs/utils/ip.js +95 -4
- package/dist/cjs/utils/ip.js.map +1 -1
- package/dist/cjs/utils/is.d.ts +123 -0
- package/dist/cjs/utils/is.d.ts.map +1 -1
- package/dist/cjs/utils/is.js +126 -14
- package/dist/cjs/utils/is.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +54 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +62 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/pargv.d.ts +51 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -1
- package/dist/cjs/utils/pargv.js +141 -3
- package/dist/cjs/utils/pargv.js.map +1 -1
- package/dist/cjs/utils/port/index.d.ts +42 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -1
- package/dist/cjs/utils/port/index.js +130 -7
- package/dist/cjs/utils/port/index.js.map +1 -1
- package/dist/cjs/utils/type_check.d.ts +79 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -1
- package/dist/cjs/utils/type_check.js +87 -1
- package/dist/cjs/utils/type_check.js.map +1 -1
- package/dist/cjs/utils/wrap.d.ts +26 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -1
- package/dist/cjs/utils/wrap.js +47 -10
- package/dist/cjs/utils/wrap.js.map +1 -1
- package/dist/esm/app/application.d.ts +36 -1
- package/dist/esm/app/application.d.ts.map +1 -1
- package/dist/esm/app/application.js +49 -2
- package/dist/esm/app/application.js.map +1 -1
- package/dist/esm/app/boot.d.ts +56 -1
- package/dist/esm/app/boot.d.ts.map +1 -1
- package/dist/esm/app/boot.js +74 -11
- package/dist/esm/app/boot.js.map +1 -1
- package/dist/esm/app/dir.d.ts +10 -0
- package/dist/esm/app/dir.d.ts.map +1 -1
- package/dist/esm/app/dir.js +71 -10
- package/dist/esm/app/dir.js.map +1 -1
- package/dist/esm/app/events.d.ts +58 -2
- package/dist/esm/app/events.d.ts.map +1 -1
- package/dist/esm/app/events.js +92 -12
- package/dist/esm/app/events.js.map +1 -1
- package/dist/esm/config/config_loader.d.ts +44 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -1
- package/dist/esm/config/config_loader.js +82 -1
- package/dist/esm/config/config_loader.js.map +1 -1
- package/dist/esm/config/default_config.d.ts +5 -0
- package/dist/esm/config/default_config.d.ts.map +1 -1
- package/dist/esm/config/default_config.js +98 -11
- package/dist/esm/config/default_config.js.map +1 -1
- package/dist/esm/config/index.d.ts +31 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +52 -0
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/const/channel.d.ts +17 -0
- package/dist/esm/const/channel.d.ts.map +1 -1
- package/dist/esm/const/channel.js +17 -0
- package/dist/esm/const/channel.js.map +1 -1
- package/dist/esm/controller/controller_loader.d.ts +20 -1
- package/dist/esm/controller/controller_loader.d.ts.map +1 -1
- package/dist/esm/controller/controller_loader.js +89 -9
- package/dist/esm/controller/controller_loader.js.map +1 -1
- package/dist/esm/controller/index.d.ts +32 -0
- package/dist/esm/controller/index.d.ts.map +1 -1
- package/dist/esm/controller/index.js +66 -0
- package/dist/esm/controller/index.js.map +1 -1
- package/dist/esm/core/loader/file_loader.d.ts +78 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +194 -68
- package/dist/esm/core/loader/file_loader.js.map +1 -1
- package/dist/esm/core/utils/index.d.ts +57 -2
- package/dist/esm/core/utils/index.d.ts.map +1 -1
- package/dist/esm/core/utils/index.js +87 -12
- package/dist/esm/core/utils/index.js.map +1 -1
- package/dist/esm/core/utils/timing.d.ts +47 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -1
- package/dist/esm/core/utils/timing.js +42 -2
- package/dist/esm/core/utils/timing.js.map +1 -1
- package/dist/esm/cross/cross.d.ts +81 -2
- package/dist/esm/cross/cross.d.ts.map +1 -1
- package/dist/esm/cross/cross.js +86 -16
- package/dist/esm/cross/cross.js.map +1 -1
- package/dist/esm/cross/crossProcess.d.ts +85 -14
- package/dist/esm/cross/crossProcess.d.ts.map +1 -1
- package/dist/esm/cross/crossProcess.js +85 -13
- package/dist/esm/cross/crossProcess.js.map +1 -1
- package/dist/esm/electron/app/index.d.ts +17 -1
- package/dist/esm/electron/app/index.d.ts.map +1 -1
- package/dist/esm/electron/app/index.js +27 -3
- package/dist/esm/electron/app/index.js.map +1 -1
- package/dist/esm/electron/index.d.ts +6 -0
- package/dist/esm/electron/index.d.ts.map +1 -1
- package/dist/esm/electron/index.js +16 -1
- package/dist/esm/electron/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +37 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +144 -88
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/exception/index.d.ts +12 -0
- package/dist/esm/exception/index.d.ts.map +1 -1
- package/dist/esm/exception/index.js +67 -9
- package/dist/esm/exception/index.js.map +1 -1
- package/dist/esm/html/index.d.ts +19 -0
- package/dist/esm/html/index.d.ts.map +1 -1
- package/dist/esm/html/index.js +42 -0
- package/dist/esm/html/index.js.map +1 -1
- package/dist/esm/index.d.ts +35 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +127 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jobs/child/app.js +86 -25
- package/dist/esm/jobs/child/app.js.map +1 -1
- package/dist/esm/jobs/child/index.d.ts +5 -5
- package/dist/esm/jobs/child/index.js +5 -5
- package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +86 -11
- package/dist/esm/jobs/child/jobProcess.js.map +1 -1
- package/dist/esm/jobs/child-pool/index.d.ts +96 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/esm/jobs/child-pool/index.js +91 -4
- package/dist/esm/jobs/child-pool/index.js.map +1 -1
- package/dist/esm/jobs/index.d.ts +10 -0
- package/dist/esm/jobs/index.d.ts.map +1 -1
- package/dist/esm/jobs/index.js +10 -0
- package/dist/esm/jobs/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/consts.js +22 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
- package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
- package/dist/esm/jobs/load-balancer/index.js +18 -18
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
- package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/types.js +4 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -1
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +52 -0
- package/dist/esm/loader/index.d.ts.map +1 -1
- package/dist/esm/loader/index.js +79 -10
- package/dist/esm/loader/index.js.map +1 -1
- package/dist/esm/log/index.d.ts +41 -0
- package/dist/esm/log/index.d.ts.map +1 -1
- package/dist/esm/log/index.js +59 -20
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.d.ts +26 -0
- package/dist/esm/log/logger.d.ts.map +1 -1
- package/dist/esm/log/logger.js +122 -2
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/message/childMessage.d.ts +50 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -1
- package/dist/esm/message/childMessage.js +83 -2
- package/dist/esm/message/childMessage.js.map +1 -1
- package/dist/esm/ps/index.d.ts +112 -0
- package/dist/esm/ps/index.d.ts.map +1 -1
- package/dist/esm/ps/index.js +175 -41
- package/dist/esm/ps/index.js.map +1 -1
- package/dist/esm/socket/httpServer.d.ts +58 -5
- package/dist/esm/socket/httpServer.d.ts.map +1 -1
- package/dist/esm/socket/httpServer.js +94 -28
- package/dist/esm/socket/httpServer.js.map +1 -1
- package/dist/esm/socket/index.d.ts +45 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +50 -14
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/ipcServer.d.ts +31 -1
- package/dist/esm/socket/ipcServer.d.ts.map +1 -1
- package/dist/esm/socket/ipcServer.js +60 -43
- package/dist/esm/socket/ipcServer.js.map +1 -1
- package/dist/esm/socket/socketServer.d.ts +32 -1
- package/dist/esm/socket/socketServer.d.ts.map +1 -1
- package/dist/esm/socket/socketServer.js +53 -14
- package/dist/esm/socket/socketServer.js.map +1 -1
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +93 -4
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/esm/storage/sqliteStorage.js +121 -9
- package/dist/esm/storage/sqliteStorage.js.map +1 -1
- package/dist/esm/types/index.d.ts +373 -5
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/extend.d.ts +44 -1
- package/dist/esm/utils/extend.d.ts.map +1 -1
- package/dist/esm/utils/extend.js +67 -19
- package/dist/esm/utils/extend.js.map +1 -1
- package/dist/esm/utils/helper.d.ts +154 -1
- package/dist/esm/utils/helper.d.ts.map +1 -1
- package/dist/esm/utils/helper.js +205 -28
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/esm/utils/index.d.ts +93 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +136 -12
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ip.d.ts +29 -0
- package/dist/esm/utils/ip.d.ts.map +1 -1
- package/dist/esm/utils/ip.js +95 -4
- package/dist/esm/utils/ip.js.map +1 -1
- package/dist/esm/utils/is.d.ts +123 -0
- package/dist/esm/utils/is.d.ts.map +1 -1
- package/dist/esm/utils/is.js +126 -14
- package/dist/esm/utils/is.js.map +1 -1
- package/dist/esm/utils/json.d.ts +54 -0
- package/dist/esm/utils/json.d.ts.map +1 -1
- package/dist/esm/utils/json.js +62 -0
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/utils/pargv.d.ts +51 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -1
- package/dist/esm/utils/pargv.js +141 -3
- package/dist/esm/utils/pargv.js.map +1 -1
- package/dist/esm/utils/port/index.d.ts +42 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -1
- package/dist/esm/utils/port/index.js +130 -7
- package/dist/esm/utils/port/index.js.map +1 -1
- package/dist/esm/utils/type_check.d.ts +79 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -1
- package/dist/esm/utils/type_check.js +87 -1
- package/dist/esm/utils/type_check.js.map +1 -1
- package/dist/esm/utils/wrap.d.ts +26 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -1
- package/dist/esm/utils/wrap.js +47 -10
- package/dist/esm/utils/wrap.js.map +1 -1
- 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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jobs/child-pool/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/jobs/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/esm/jobs/index.js
CHANGED
|
@@ -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":"
|
|
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;
|
|
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
|
|
@@ -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
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
(
|
|
26
|
-
|
|
27
|
-
|
|
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,
|
|
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"}
|