우분투 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
무엇이 해결책입니까 PHP 경고 : 모듈 'gearman'이 (가) Unknown on line 0에 이미로드되었습니다. ' 이 오류가 발생했습니다. –
이 페이지 확인 http://www.somacon.com/p520.php – Mohsen