2013-09-05 6 views
3

우분투 12.04 64 비트, PHP 5.3.10, gearman 1.1.5를 사용하여 로컬 시스템에서 실행 중입니다. 다음 코드 는gearman doBackground()가 PHP와 작동하지 않습니다

print gearman_version() . "\n"; 

PHP는 경고를

PHP 경고를 발생시킵니다 : 모듈 'Gearman을'이 이미 줄에 알 수없는로드

0 또한 내가 YII 콘솔 응용 프로그램 WorkerAdminCommand.php이

를 사용하여 구축
<?php 
class WorkerAdminCommand extends CConsoleCommand { 

public function run() { 

    $gmworker = new GearmanWorker(); 
    $gmworker->addServer(); // also tried with $gmworker->addServer('127.0.0.1:4730'); 
    $gmworker->addFunction("getMyFunc", array($this, "getMyFunc")); 
    print "Waiting for job...\n"; 
    while ($gmworker->work()) { 
     if ($gmworker->returnCode() != GEARMAN_SUCCESS) { 
      echo "return_code: " . $gmworker->returnCode() . "\n"; 
      break; 
     } 
    } 
} 

public function getMyFunc($job) { 
    echo "start \n"; 
    // long task 
    echo "\n end \n"; 
} 

} ?>

그리고 AdminCommand.php

<?php 

class AdminCommand extends CConsoleCommand { 

public function run($args) { 
    $gmclient = new GearmanClient(); 
    $gmclient->addServer(); 

    echo "Sending job\n"; 
    $data = $args[0]; 
    $result = $gmclient->doBackground("getMyFunc", $data); 

    # Check for various return packets and errors. 
    switch ($gmclient->returnCode()) { 
     case GEARMAN_WORK_STATUS: 
     list($numerator, $denominator) = $gmclient->doStatus(); 
     echo "Status: $numerator/$denominator complete\n"; 
     break; 
     case GEARMAN_WORK_FAIL: 
     echo "Failed\n"; 
     exit; 
     case GEARMAN_SUCCESS: 
     echo "Job process successfully\n"; 
     break; 
     default: 
     echo "RET: " . $gmclient->returnCode() . "\n"; 
     exit; 

    } 
    echo $result . PHP_EOL; 
} 

}

?>

실행 노동자 PHP는 job_entry.php의 workeradmin 작업을 기다리는 중 ... 실행 클라이언트 의 PHP job_entry .php admin arg1 이 날 에러가 발생합니다

PHP 오류 [2] : GearmanClient :: doBackground은() : send_packet (GEARMAN_COULD_NOT_CONNECT)는 서버 옵션 패킷을 보내지 못했습니다 -> libgearman/connection.cc : 430

답변

2

$gmworker->addServer('127.0.0.1','4730'); 
을 시도 할 수 있습니다
+0

무엇이 해결책입니까 PHP 경고 : 모듈 'gearman'이 (가) Unknown on line 0에 이미로드되었습니다. ' 이 오류가 발생했습니다. –

+0

이 페이지 확인 http://www.somacon.com/p520.php – Mohsen