summaryrefslogblamecommitdiffstats
path: root/application/controllers/GearmanController.php
blob: 8538432e7591139dde96a8a9622ff6470e69b72e (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                           
                                                             
         

                                     
         
 
         
 
                                        
         





















                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                 
         
 
<?php

class GearmanController extends Zend_Controller_Action
{
	protected $gearmanClient;

	public function init()
	{
		$this->gearmanClient = new GearmanClient();
		$this->gearmanClient->addServer('127.0.0.1');
	}

	public function indexAction()
	{

	}

	public function somepingAction()
	{
		$gearmanNamespace = Zend_Session::namespaceGet('gearman');
		if(!isset($gearmanNamespace['somePingJobHandle'])) {
			$ipString = '132.230.4.1; 132.230.4.2; 132.230.4.3; 132.230.4.4; 132.230.4.5; 132.230.4.6; 132.230.4.7; 132.230.4.8; 132.230.4.9; 132.230.4.10; 132.230.4.11; 132.230.4.12; 132.230.4.13; 132.230.4.14; 132.230.4.15; 132.230.4.16; 132.230.4.17; 132.230.4.18; 132.230.4.19; 132.230.4.20; 132.230.4.21; 132.230.4.22; 132.230.4.23; 132.230.4.24; 132.230.4.25; 132.230.4.26; 132.230.4.27; 132.230.4.28; 132.230.4.29; 132.230.4.30';
			$jobHandle = $this->gearmanClient->doBackground("somePing", $ipString);
			$gearmanSession = new Zend_Session_Namespace('gearman');
			$gearmanSession->somePingJobHandle = $jobHandle;
		} else {
			$jobHandle = $gearmanNamespace['somePingJobHandle'];
			$result = $this->gearmanClient->jobStatus($jobHandle);
			$resultsExp = explode('; ', $result);
			print_r($result);
			if(is_array($resultsExp)) {
				foreach($resultsExp as $result) {
					$resultDecode = json_decode($result);
					$resultDecode->rawoutput = sprintf('%s', $resultDecode->rawoutput);
					$resultDecode->alive = sprintf('%s', $resultDecode->alive);
					$resultDecode->rc = sprintf('%s', $resultDecode->rc);
					$results[] = $resultDecode;
				}
				Zend_Session::namespaceUnset('gearman');
				$this->view->results = $results;
			}
		}
	}
}