workerman的Worker类代码分析

static::checkSapiEnv();   #检测sapi的环境

SAPI 服务器应用程序编程接口,即PHP与其它应用交互接口,PHP脚本要执行有很多方式,通过Web的服务,或者直接在命令行下,也可以嵌入在其他程序中 

常见SAPI有:cgi fast-cgi cli(命令行) apache模块的DDL isapi    

static::init();   #初始化 

static::lock();  #锁上文件,其它进程不能在用了,不能操作

static::parseCommand(); #判断是不是linux系统, 命令行

static::daemonize();  #守护进程的东西         static::$_os !==OS_TYPE_LINUX 判断是否是linux

static::initWorkers();  #初始化所有的workers实例       static::getUiColumns()获取字段就是下面的图片

 

static::installSignal();  #安装信号 

 

 

 

static::saveMasterPid();  #保存主进程id   master主进程保存起来 

#以上的方法是在锁上之后在操作 

static::unlock(); #解锁 

static::displayUI();  #展示页面 

 

static::forkWorkers();   #子进程

static::resetStd();   #重置的 标准输入和输出 

static::monitorWorkers();  #监控子进程的 

forkOneWorkerForLinux($worker)  #linux子进程时候调用 $worker->run()

 

public function run()

就可以达到回调了   $this(就是当前worker实例 )当个这个$this->onWorkerStart属性的参数,就注册进去了

 

 

call_user_func

  call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed

   第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数

 

public function acceptConnection($socket) 是接受一个连接 

$this 是当前woreker实例 

 

 

$parser::encode($send_buffer, $this) #这是打包的处理 

 

 

Worker.php

posted @ 2019-05-15 20:35  来阿里啊呀  阅读(466)  评论(0)    收藏  举报