Пример #1
0
 /**
  * 虚拟本地并行调用(纯本地)
  * 目的:尽可能的做到与远程调取无缝对接
  * @param  array $data 暂不考虑error_callback
  * @return array 返回不调取回调函数的值
  */
 public function callMulti($data = array())
 {
     if (empty($data)) {
         return false;
     }
     $result = array();
     foreach ($data as $k => $v) {
         $callback = isset($v['callback']) ? $v['callback'] : null;
         $parameters = array('service' => $v['service'], 'method' => $v['method'], 'args' => isset($v['args']) ? $v['args'] : array());
         $tmpRes = $this->call($parameters);
         Monitor::pushMsg($v, $tmpRes);
         if (empty($callback)) {
             $result[$k + 1] = $tmpRes;
         } elseif (is_array($callback)) {
             call_user_func_array($callback, array($tmpRes, ''));
         } else {
             //抛异常
         }
     }
     return $result;
 }