2016-09-28 应用工具(appManager, appUtil)

Application类中有几个重要的函数是由appManager和appUtil来承担的。

appManager.js:

  • 该类仅包含一个transaction函数,用于进行事务处理

appManager.transaction:

  • 事务处理函数,接收参数为name:事件名,condition:触发条件,handler:完成时处理函数,retry:重试次数
  • 事务名称必须为字符串,条件必须为对象,内部必须为字符串-函数键值对,完成时处理函数必须为对象
  • 分别用两个数组存储条件名与条件函数
  • 顺序执行条件函数
  • 若执行过程中发生错误,则输出错误信息
  • 若成功执行完所有条件函数,则开始执行handler函数,顺序执行所有handler函数,若错误则记录报错退出。

appUtil.js:

appUtil.defaultConfiguration:

  • 读取配置的函数,调用parseArgs从process.argv解析输入参数
  • 顺序调用setupEnv、loadMaster、loadServers、processArgs、configLogger、loadLifecycle等几个函数

parseArgs:

  • 解析命令行参数的方法
  • 跳过带有“–”的参数项,找到启动的命令的主文件,名赋给args.main
  • 从主文件向后查找参数,使用=分隔key,value,将键值对存入args中返回

setEnv:

  • 设置当前项目运行环境,尝试传入的args.env,若没有则读取process.env.NODE_ENV,若为空则默认使用development环境,并attach到根对象下。

loadMaster:

  • 从config/master.json文件中加载master的配置信息,不启动reload,并绑定到根对象下

loadServres:

  • 从config/servers.json文件中加载服务器信息,并使用该信息初始化serverMap,serverMap是serverId-server的键值对

processArgs:

  • 处理启动命令参数的函数
  • 将serverType、serverId、mode、type等存入到app.setting及application根对象下

configLogger:

  • 配置当前应用使用的日志器,从config/log4js.json读取配置文件,文件不存在则报错,否则将文件路径传入log.js的configure函数进行logger配置

loadLifecycle:

  • 读取生命周期配置,从lifecycle.js读取配置文件,将文件中的回调函数存入app.lifecycleCbs中

appUtil.startByType:

  • 根据类型启动服务器,如果是master,则不再启动,直接调用回调函数,如果不是,则调用starter的runServers进行启动

appUtil .loadDefaultComponents:

  • 将配置load到app中(不太理解,app.load的内容就是app.get出来的内容,有什么区别?)

appUtil.stopComponents:

  • 调用components的stop方法,停止某一组组件

appUtil.optComponents:

  • 调用components的某特定方法,可以用于实现stopComponents方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值