示例#1
0
 public function __construct($params)
 {
     $succ = false;
     $i = -1;
     $servers = $params['servers'];
     $path = $params['path'];
     $retry = $params['retry'];
     $timeout = $params['timeout'];
     shuffle($servers);
     while (!$succ && $retry--) {
         $i = ($i + 1) % count($servers);
         $server = $servers[$i];
         $options = array('hostname' => $server['host'], 'port' => $server['port'], 'path' => $path, 'timeout' => $timeout);
         try {
             parent::__construct($options);
             $this->ping();
             $succ = true;
         } catch (Exception $e) {
             if ($retry == 1) {
                 $ci =& get_instance();
                 $ci->log->log('warning', 'connect to solr failed', $options);
                 throw $e;
             }
         }
     }
 }