/** * Run webserver instance. * * @see Workerman.Worker::run() */ public function run() { $this->_onWorkerStart = $this->onWorkerStart; $this->onWorkerStart = array($this, 'onWorkerStart'); $this->onMessage = array($this, 'onMessage'); parent::run(); }
public function run() { $this->onConnect = array($this, 'onConnect'); // onMessage禁止用户设置回调 $this->onMessage = array($this, 'onMessage'); // 保存用户的回调,当对应的事件发生时触发 $this->onClose = array($this, 'onClose'); // 记录进程启动的时间 $this->_startTime = time(); // 运行父方法 parent::run(); }
/** * 运行 * @return void */ public function run() { // 设置onMessage连接回调 $this->onConnect = array($this, 'onConnect'); // 设置onMessage回调 $this->onMessage = array($this, 'onMessage'); // 设置onClose回调 $this->onClose = array($this, 'onClose'); // 记录进程启动的时间 $this->_startTime = time(); // 运行父方法 parent::run(); }
/** * 运行 * @see Workerman.Worker::run() */ public function run() { echo 123; $htmlStr = file_get_contents('http://www.baidu.com'); for ($i = 0; $i < 200; $i++) { if ($this->count < 200) { file_put_contents('/www/html/workerman/html/chat1/test.log', $this->count++ . "\r\n", FILE_APPEND); sleep(3); } } echo 456; parent::run(); }
/** * 运行 * @see Workerman.Worker::run() */ public function run() { // 保存用户的回调,当对应的事件发生时触发 $this->_onWorkerStart = $this->onWorkerStart; $this->onWorkerStart = array($this, 'onWorkerStart'); // 保存用户的回调,当对应的事件发生时触发 $this->_onConnect = $this->onConnect; $this->onConnect = array($this, 'onClientConnect'); // onMessage禁止用户设置回调 $this->onMessage = array($this, 'onClientMessage'); // 保存用户的回调,当对应的事件发生时触发 $this->_onClose = $this->onClose; $this->onClose = array($this, 'onClientClose'); // 保存用户的回调,当对应的事件发生时触发 $this->_onWorkerStop = $this->onWorkerStop; $this->onWorkerStop = array($this, 'onWorkerStop'); // 记录进程启动的时间 $this->_startTime = time(); // 运行父方法 parent::run(); }
/** * Fork one worker process. * @param Worker $worker * @throws Exception */ protected static function forkOneWorker($worker) { $pid = pcntl_fork(); // Get available worker id. $id = self::getId($worker->workerId, 0); // For master process. if ($pid > 0) { self::$_pidMap[$worker->workerId][$pid] = $pid; self::$_idMap[$worker->workerId][$id] = $pid; } elseif (0 === $pid) { if ($worker->reusePort) { $worker->listen(); } if (self::$_status === self::STATUS_STARTING) { self::resetStd(); } self::$_pidMap = array(); self::$_workers = array($worker->workerId => $worker); Timer::delAll(); self::setProcessTitle('WorkerMan: worker process ' . $worker->name . ' ' . $worker->getSocketName()); $worker->setUserAndGroup(); $worker->id = $id; $worker->run(); exit(250); } else { throw new Exception("forkOneWorker fail"); } }
/** * 创建一个子进程 * @param Worker $worker * @throws Exception */ protected static function forkOneWorker($worker) { $pid = pcntl_fork(); // 主进程记录子进程pid if ($pid > 0) { self::$_pidMap[$worker->workerId][$pid] = $pid; } elseif (0 === $pid) { // 启动过程中尝试重定向标准输出 if (self::$_status === self::STATUS_STARTING) { self::resetStd(); } self::$_pidMap = array(); self::$_workers = array($worker->workerId => $worker); Timer::delAll(); self::setProcessTitle('WorkerMan: worker process ' . $worker->name . ' ' . $worker->getSocketName()); self::setProcessUser($worker->user); $worker->run(); exit(250); } else { throw new Exception("forkOneWorker fail"); } }
/** * 运行 * @see Workerman.Worker::run() */ public function run() { $this->_onWorkerStart = $this->onWorkerStart; $this->_onWorkerReload = $this->onWorkerReload; $this->onWorkerStart = array($this, 'onWorkerStart'); $this->onWorkerReload = array($this, 'onWorkerReload'); parent::run(); }
/** * 创建一个子进程 * @param Worker $worker * @throws Exception */ protected static function forkOneWorker($worker) { $pid = pcntl_fork(); // 获得可用的id $id = self::getId($worker->workerId, 0); // 主进程记录子进程pid if ($pid > 0) { self::$_pidMap[$worker->workerId][$pid] = $pid; self::$_idMap[$worker->workerId][$id] = $pid; } elseif (0 === $pid) { // 如果设置了端口复用,则在子进程执行监听 if ($worker->reusePort) { $worker->listen(); } // 启动过程中尝试重定向标准输出 if (self::$_status === self::STATUS_STARTING) { self::resetStd(); } self::$_pidMap = array(); self::$_workers = array($worker->workerId => $worker); Timer::delAll(); self::setProcessTitle('WorkerMan: worker process ' . $worker->name . ' ' . $worker->getSocketName()); $worker->setProcessUserAndRoot(); $worker->id = $id; $worker->run(); exit(250); } else { throw new Exception("forkOneWorker fail"); } }