Exemplo n.º 1
0
 public function callMulti($data = array())
 {
     //remote调用执行开始时间
     Runtime::execStart();
     foreach ($data as $k => $v) {
         $url = isset($v['url']) ? $v['url'] : $this->apiUrl;
         $callback = isset($v['callback']) ? $v['callback'] : null;
         $errorCallback = isset($v['error_callback']) ? $v['error_callback'] : null;
         $parameters = array('service' => $v['service'], 'method' => $v['method'], 'args' => isset($v['args']) ? $v['args'] : array());
         $this->rawData[$k + 1] = $parameters;
         $opt = isset($v['opt']) && is_array($v['opt']) ? $v['opt'] : array(YAR_OPT_PACKAGER => $this->packager);
         \Yar_Concurrent_Client::call($url, 'callService', array($parameters), $callback, $errorCallback, $opt);
     }
     \Yar_Concurrent_Client::loop(array($this, 'callback'), array($this, 'errorCallback'));
     \Yar_Concurrent_Client::reset();
     $resultData = self::$result;
     self::$result = array();
     if ((APP_ENV == 'dev' || APP_ENV == 'test') && DI::getDefault()['request']->hasQuery('debug')) {
         ApiLog::addLog($data, $resultData);
     }
     return $resultData;
 }