2012-06-14 2 views
3

Я пытаюсь запустить example Gearman worker from their documentation (см. Ниже), но каждый раз я получаю множество ошибок в файле журнала Gearman следующим образом: FATAL [ 0] gearman_packet_unpack_header:invalid command value. Когда я запускаю клиент Gearman (опять же, свой пример), он ничего не меняет. Ничего не произошло.FATAL [0] gearman_packet_unpack_header: недопустимое значение команды

Вот пример кода работника, который не удается

# 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:

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

>gearmand -V:

gearmand 0.29

Как правильно настроить Gearman работать? libgearman - это та же версия, что и gearmand, и мое расширение PECL является самой последней стабильной версией. Я не уверен, что еще попробовать.

ответ

2

Насколько я мог судить, расширение PECL для Gearman как версии 1.0.2 не работает с версией Gearman 0.29. Я обновил Gearman и libgearman как до версии 0.33, так и после моего продления работал.

+0

Я столкнулся с похожими, хотя и не идентичными проблемами. Я отказался от расширения PECL и в процессе перехода на Net_Gearman PEAR, поскольку он является PHP, я ожидаю, что он будет намного более устойчивым к различиям в версии и архитектуре. – halfer

Смежные вопросы