当前位置: 首页>>代码示例>>PHP>>正文


PHP Timer::init方法代码示例

本文整理汇总了PHP中Workerman\Lib\Timer::init方法的典型用法代码示例。如果您正苦于以下问题:PHP Timer::init方法的具体用法?PHP Timer::init怎么用?PHP Timer::init使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Workerman\Lib\Timer的用法示例。


在下文中一共展示了Timer::init方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: init

 /**
  * 初始化一些环境变量
  *
  * @return void
  */
 public static function init()
 {
     // 如果没设置$pidFile,则生成默认值
     if (empty(self::$pidFile)) {
         $backtrace = debug_backtrace();
         self::$_startFile = $backtrace[count($backtrace) - 1]['file'];
         self::$pidFile = sys_get_temp_dir() . "/workerman." . str_replace('/', '_', self::$_startFile) . ".pid";
     }
     // 没有设置日志文件,则生成一个默认值
     if (empty(self::$logFile)) {
         self::$logFile = __DIR__ . '/../server.log';
     }
     // 标记状态为启动中
     self::$_status = self::STATUS_STARTING;
     // 启动时间戳
     self::$_globalStatistics['start_timestamp'] = time();
     Base::getLog()->debug(__METHOD__ . ' worker start timestamp', ['time' => self::$_globalStatistics['start_timestamp']]);
     // 设置status文件位置
     self::$statusFile = sys_get_temp_dir() . '/workerman.status';
     Base::getLog()->debug(__METHOD__ . ' set status file', ['file' => self::$statusFile]);
     // 尝试设置进程名称(需要php>=5.5或者安装了proctitle扩展)
     self::setProcessTitle('WorkerMan: master process  start_file=' . self::$_startFile);
     // 初始化ID
     self::initId();
     // 初始化定时器
     Timer::init();
 }
开发者ID:rockefys,项目名称:server,代码行数:32,代码来源:Worker.php

示例2: run

 /**
  * 运行worker实例
  */
 public function run()
 {
     // 设置自动加载根目录
     Autoloader::setRootPath($this->_appInitPath);
     // 则创建一个全局事件轮询
     if (extension_loaded('libevent')) {
         self::$globalEvent = new Libevent();
     } else {
         self::$globalEvent = new Select();
     }
     // 监听_mainSocket上的可读事件(客户端连接事件)
     if ($this->_socketName) {
         if ($this->transport !== 'udp') {
             self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptConnection'));
         } else {
             self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptUdpConnection'));
         }
     }
     // 用全局事件轮询初始化定时器
     Timer::init(self::$globalEvent);
     // 如果有设置进程启动回调,则执行
     if ($this->onWorkerStart) {
         call_user_func($this->onWorkerStart, $this);
     }
     // 子进程主循环
     self::$globalEvent->loop();
 }
开发者ID:AimuTran,项目名称:workerman-for-win,代码行数:30,代码来源:Worker.php

示例3: run

 /**
  * Run worker instance.
  * @return void
  */
 public function run()
 {
     //Update process state.
     self::$_status = self::STATUS_RUNNING;
     // Eegister shutdown function for checking errors.
     register_shutdown_function(array("\\Workerman\\Worker", 'checkErrors'));
     // Set autoload root path.
     Autoloader::setRootPath($this->_autoloadRootPath);
     // Create a global event loop.
     if (!self::$globalEvent) {
         $eventLoopClass = "\\Workerman\\Events\\" . ucfirst(self::getEventLoopName());
         self::$globalEvent = new $eventLoopClass();
         // Register a listener to be notified when server socket is ready to read.
         if ($this->_socketName) {
             if ($this->transport !== 'udp') {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptConnection'));
             } else {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptUdpConnection'));
             }
         }
     }
     // Reinstall signal.
     self::reinstallSignal();
     // Init Timer.
     Timer::init(self::$globalEvent);
     // Try to emit onWorkerStart callback.
     if ($this->onWorkerStart) {
         try {
             call_user_func($this->onWorkerStart, $this);
         } catch (\Exception $e) {
             echo $e;
             exit(250);
         }
     }
     // Main loop.
     self::$globalEvent->loop();
 }
开发者ID:TongJiankang,项目名称:Workerman,代码行数:41,代码来源:Worker.php

示例4: run

 /**
  * 运行worker实例
  */
 public function run()
 {
     // 注册进程退出回调,用来检查是否有错误
     register_shutdown_function(array("\\Workerman\\Worker", 'checkErrors'));
     // 设置自动加载根目录
     Autoloader::setRootPath($this->_appInitPath);
     // 如果没有全局事件轮询,则创建一个
     if (!self::$globalEvent) {
         if (extension_loaded('libevent')) {
             self::$globalEvent = new Libevent();
         } else {
             self::$globalEvent = new Select();
         }
         // 监听_mainSocket上的可读事件(客户端连接事件)
         if ($this->_socketName) {
             if ($this->transport !== 'udp') {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptConnection'));
             } else {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptUdpConnection'));
             }
         }
     }
     // 重新安装事件处理函数,使用全局事件轮询监听信号事件
     self::reinstallSignal();
     // 用全局事件轮询初始化定时器
     Timer::init(self::$globalEvent);
     // 如果有设置进程启动回调,则执行
     if ($this->onWorkerStart) {
         call_user_func($this->onWorkerStart, $this);
     }
     // 子进程主循环
     self::$globalEvent->loop();
 }
开发者ID:hongbo819,项目名称:webChat,代码行数:36,代码来源:Worker.php

示例5: run

 /**
  * 运行worker实例
  */
 public function run()
 {
     //更新 Worker 状态
     self::$_status = self::STATUS_RUNNING;
     // 注册进程退出回调,用来检查是否有错误
     register_shutdown_function(array("\\Workerman\\Worker", 'checkErrors'));
     // 设置自动加载根目录
     Autoloader::setRootPath($this->_appInitPath);
     // 如果没有全局事件轮询,则创建一个
     if (!self::$globalEvent) {
         $eventLoopClass = "\\Workerman\\Events\\" . ucfirst(self::getEventLoopName());
         self::$globalEvent = new $eventLoopClass();
         // 监听_mainSocket上的可读事件(客户端连接事件)
         if ($this->_socketName) {
             if ($this->transport !== 'udp') {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptConnection'));
             } else {
                 self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptUdpConnection'));
             }
         }
     }
     // 重新安装事件处理函数,使用全局事件轮询监听信号事件
     self::reinstallSignal();
     // 用全局事件轮询初始化定时器
     Timer::init(self::$globalEvent);
     // 如果有设置进程启动回调,则执行
     if ($this->onWorkerStart) {
         try {
             call_user_func($this->onWorkerStart, $this);
         } catch (\Exception $e) {
             echo $e;
             exit(250);
         }
     }
     // 子进程主循环
     self::$globalEvent->loop();
 }
开发者ID:dryyun,项目名称:Workerman,代码行数:40,代码来源:Worker.php


注:本文中的Workerman\Lib\Timer::init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。