thinkjs3.x-运行流程
2021-11-02 11:47:36 8 举报
AI智能生成
thinkjs3.x-运行流程-简化版
作者其他创作
大纲/内容
特点:http.createServer创建服务
一:系统服务启动
实例化Application类,执行run方法
master进程
<ul><li>加载配置Config(合并config.js、adapter.js)</li><li>加载自定义启动( src/bootstrap/master.js )</li><li>[if] 文件编译监听服务,监听目录 src/,编译到 app/ 目录</li><li>根据配置 workers 来 fork 对应数目的 Worker</li><li>Worker 进程启动完成后,触发 appReady 事件</li></ul>
worker进程
<ul style="font-size: 13px;"><li>加载配置Config(合并config.js、adapter.js)</li><li>加载扩展配置Extend(src/config/extend.js)</li><li>获取模块列表Modules( think.app.modules) </li><li>加载控制层Controller (src/controller/*.js)</li><li>加载校验层Logic(src/logic/*.js)</li><li>加载数据层Model (src/model/*.js)</li><li>加载Service (src/service/*.js)</li><li>加载路由(src/config/router.js)</li><li>加载校验配置(src/config/validator.js)</li><li>加载中间件Middleware(src/config/middleware.js)</li><li>加载定时任务注册服务(src/config/crontab.js)</li><li>加载自定义启动(src/bootstrap/worker.js)</li><li>监听 process 里的 onUncaughtException 和 onUnhandledRejection 错误事件</li><li>等待 think.beforeStartServer 注册的启动前处理函数执行</li><li>[if] 执行 createServer(port, host, callback) 创建自定义服务;[else] think.app.listen 启动服务</li><li>服务启动完成时,触发 think.app.on("appReady") 监听</li><li>创建的服务赋值给 think.app.server 对象</li></ul>
二:用户请求处理
通过端口访问node服务
Master进程将请求转发给对应的Worker
Worker进程通过注册的中间件处理用户请求:<br>meta、resource、trace、payload、router、logic、controller等<br>
Router解析路由,解析对应的Controller和Action
Logic执行解析出来的方法
Controller执行解析出来的方法
当 Worker 报错(触发 onUncaughtException 或 onUnhandledRejection 事件),或 Worker 异常退出时,Master 捕获后重新 fork 1个新的 Worker 进程,并杀掉当前的进程
收藏
0 条评论
下一页