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


PHP IDatabase::getServer方法代码示例

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


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

示例1: __construct

 /**
  * @param array $params An associative array with one member:
  *   - connection: An IDatabase connection object
  */
 public function __construct(array $params)
 {
     if (!isset($params['connection'])) {
         throw new InvalidArgumentException("Missing 'connection' argument.");
     }
     $this->db = $params['connection'];
     parent::__construct(['servers' => [['type' => $this->db->getType(), 'host' => $this->db->getServer(), 'dbname' => $this->db->getDBname(), 'load' => 1]], 'trxProfiler' => isset($params['trxProfiler']) ? $params['trxProfiler'] : null, 'srvCache' => isset($params['srvCache']) ? $params['srvCache'] : null, 'wanCache' => isset($params['wanCache']) ? $params['wanCache'] : null]);
     if (isset($params['readOnlyReason'])) {
         $this->db->setLBInfo('readOnlyReason', $params['readOnlyReason']);
     }
 }
开发者ID:paladox,项目名称:mediawiki,代码行数:15,代码来源:LoadBalancerSingle.php

示例2: safeWaitForMasterPos

 /**
  * Wait for a slave DB to reach a specified master position
  *
  * This will connect to the master to get an accurate position if $pos is not given
  *
  * @param IDatabase $conn Slave DB
  * @param DBMasterPos|bool $pos Master position; default: current position
  * @param integer $timeout Timeout in seconds
  * @return bool Success
  * @since 1.27
  */
 public function safeWaitForMasterPos(IDatabase $conn, $pos = false, $timeout = 10)
 {
     if ($this->getServerCount() == 1 || !$conn->getLBInfo('slave')) {
         return true;
         // server is not a slave DB
     }
     $pos = $pos ?: $this->getConnection(DB_MASTER)->getMasterPos();
     if (!$pos) {
         return false;
         // something is misconfigured
     }
     $result = $conn->masterPosWait($pos, $timeout);
     if ($result == -1 || is_null($result)) {
         $msg = __METHOD__ . ": Timed out waiting on {$conn->getServer()} pos {$pos}";
         wfDebugLog('replication', "{$msg}\n");
         wfDebugLog('DBPerformance', "{$msg}:\n" . wfBacktrace(true));
         $ok = false;
     } else {
         wfDebugLog('replication', __METHOD__ . ": Done\n");
         $ok = true;
     }
     return $ok;
 }
开发者ID:admonkey,项目名称:mediawiki,代码行数:34,代码来源:LoadBalancer.php

示例3: safeWaitForMasterPos

 public function safeWaitForMasterPos(IDatabase $conn, $pos = false, $timeout = 10)
 {
     if ($this->getServerCount() <= 1 || !$conn->getLBInfo('replica')) {
         return true;
         // server is not a replica DB
     }
     if (!$pos) {
         // Get the current master position, opening a connection if needed
         $masterConn = $this->getAnyOpenConnection($this->getWriterIndex());
         if ($masterConn) {
             $pos = $masterConn->getMasterPos();
         } else {
             $masterConn = $this->openConnection($this->getWriterIndex(), self::DOMAIN_ANY);
             $pos = $masterConn->getMasterPos();
             $this->closeConnection($masterConn);
         }
     }
     if ($pos instanceof DBMasterPos) {
         $result = $conn->masterPosWait($pos, $timeout);
         if ($result == -1 || is_null($result)) {
             $msg = __METHOD__ . ": Timed out waiting on {$conn->getServer()} pos {$pos}";
             $this->replLogger->warning("{$msg}");
             $ok = false;
         } else {
             $this->replLogger->info(__METHOD__ . ": Done");
             $ok = true;
         }
     } else {
         $ok = false;
         // something is misconfigured
         $this->replLogger->error("Could not get master pos for {$conn->getServer()}.");
     }
     return $ok;
 }
开发者ID:paladox,项目名称:mediawiki,代码行数:34,代码来源:LoadBalancer.php


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