コード例 #1
0
 function gearman_status()
 {
     $res = new response();
     require_once 'Net/Gearman/Manager.php';
     $id = $this->params["id"];
     $server = Doo::db()->getOne('GearmanJobServers', array('where' => "id = {$id}"));
     if ($server == false) {
         $res->message = "invalid id";
         $res->success = false;
     } else {
         try {
             $manager = new Net_Gearman_Manager($server->hostname . ":" . $server->port);
             $res->data = $manager->status();
             $res->success = true;
         } catch (Net_Gearman_Exception $e) {
             $res->message = $e->getMessage();
             $res->success = false;
         }
     }
     echo $res->to_json();
 }
コード例 #2
0
 /**
  * Returns information about workers connected to Gearman server
  *
  * @return array
  */
 public function getWorkersData()
 {
     $data = array();
     foreach ($this->_servers as $serverIndex => $server) {
         if (!empty($this->_filterServers) && !in_array($serverIndex, $this->_filterServers)) {
             continue;
         }
         try {
             $gearmanManager = new Net_Gearman_Manager($server['address']);
             $workers = $gearmanManager->workers();
             $gearmanManager->disconnect();
             unset($gearmanManager);
             foreach ($workers as $worker) {
                 if (strlen($this->_filterName) == 0 || stripos($worker['ip'], $this->_filterName) !== false || stripos(join('$#!', $worker['abilities']), $this->_filterName) !== false) {
                     sort($worker['abilities'], SORT_STRING);
                     $worker['server'] = $server['name'];
                     $data[] = $worker;
                 }
             }
         } catch (Exception $e) {
             $this->_addError($e->getMessage());
         }
     }
     $data = $this->_sortData($data, $this->_getSortAvailableWorkers());
     return $data;
 }
コード例 #3
0
 function gearman_status($server)
 {
     require_once 'Net/Gearman/Manager.php';
     try {
         $manager = new Net_Gearman_Manager($server->hostname . ":" . $server->port);
         $res['data'] = $manager->status();
         $res['success'] = true;
     } catch (Net_Gearman_Exception $e) {
         $res['data'] = $e->getMessage();
         $res['success'] = false;
     }
     return $res;
 }