/** * 向特定的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(); } }