Example #1
0
 /**
  * 执行远程调用任务
  * @param $uri
  * @param $method
  * @param array $parameters
  * @param callable $callback
  * @return $this|mixed
  */
 public function call($uri, $method, array $parameters = array(), callable $callback = null)
 {
     if (!$this->_sync) {
         $rpc = new \Yar_Client($uri);
         if (!empty($this->_opt) && is_array($this->_opt)) {
             foreach ($this->_opt as $key => $value) {
                 $rpc->setOpt($key, $value);
             }
         }
         $result = call_user_func_array(array($rpc, $method), $parameters);
         if (!empty($callback) && is_callable($callback)) {
             $result = call_user_func($callback, $result);
         }
         return $result;
     }
     \Yar_Concurrent_Client::call($uri, $method, $parameters, $callback);
     return $this;
 }