Beispiel #1
0
 /**
  * 向特定的worker发送命令
  * @param char $cmd
  * @param int $pid
  * @return boolean|string|mixed
  */
 protected static function sendCmdToWorker($cmd, $pid)
 {
     // 如果是ping心跳包,则计数
     if ($cmd == Cmd::CMD_PING) {
         if (!isset(self::$pingInfo[$pid])) {
             self::$pingInfo[$pid] = 0;
         }
         self::$pingInfo[$pid]++;
     }
     // 写入命令
     if (!@fwrite(self::$channels[$pid], Cmd::encodeForMaster($cmd), 1)) {
         self::notice("send cmd:{$cmd} to pid:{$pid} fail");
         self::monitorWorkers();
     }
 }