2012-06-14 2 views
3

example Gearman worker from their documentation (아래 참조)을 실행하려고하는데, 다음과 같이 내 Gearman 로그 파일에 많은 오류가 발생합니다. FATAL [ 0] gearman_packet_unpack_header:invalid command value. Gearman 클라이언트 (다시 말하지만, 자신의 예제)를 실행하면 아무 것도 변경되지 않습니다. 아무 반응이 없습니다.치명적인 오류 [0] gearman_packet_unpack_header : 잘못된 명령 값

extension version 1.0.2 
libgearman version 0.29 
Default TCP Host localhost 
Default TCP Port 4730 

>gearmand -V :

gearmand 0.29

어떻게 제대로 Gearman을 작동하도록 구성해야합니까 여기

# Create our worker object. 
$worker= new GearmanWorker(); 

# Add default server (localhost). 
$worker->addServer(); 

# Register function "reverse" with the server. 
$worker->addFunction("reverse", "reverse_fn"); 

while (1) 
{ 
    print "Waiting for job...\n"; 

    $ret= $worker->work(); 
    if ($worker->returnCode() != GEARMAN_SUCCESS) 
    break; 
} 

# A much simple reverse function 
function reverse_fn($job) 
{ 
    $workload= $job->workload(); 
    echo "Received job: " . $job->handle() . "\n"; 
    echo "Workload: $workload\n"; 
    $result= strrev($workload); 
    echo "Result: $result\n"; 
    return $result; 
} 

>php -i를 실패한 샘플 노동자 코드? libgearman은 gearmand와 같은 버전이며 내 PECL 확장은 가장 최근의 안정 버전입니다. 나는 그 밖에 무엇을 시도해야할지 모르겠습니다.

답변

2

Gearman의 PECL 확장 버전 1.0.2는 Gearman 버전 0.29에서 작동하지 않습니다. Gearman과 libgearman을 모두 0.33 버전으로 업데이트했고, 확장 기능이 작동하자마자 확장이 작동했습니다.

+0

동일한 문제는 아니지만 비슷한 문제가 발생했습니다. 나는 PECL 확장을 포기하고 PEAR의 Net_Gearman으로 전환하는 과정에있다. PHP이기 때문에 버전/아키텍처의 차이점에 훨씬 더 탄력적이라고 ​​기대한다. – halfer