3
我試圖運行example Gearman worker from their documentation(見下文),但每次我都會在我的Gearman日誌文件中看到如下錯誤:FATAL [ 0] gearman_packet_unpack_header:invalid command value
。當我運行Gearman客戶端(再次,他們自己的例子),它似乎沒有改變任何東西。什麼都沒發生。致命[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擴展是最新的穩定版本。我不知道還有什麼可以嘗試的。
我遇到了類似的問題,但並不完全相同。我已經放棄了PECL擴展,並且正在切換到PEAR的Net_Gearman - 因爲它是PHP,我認爲它對版本/體系結構的差異更具彈性。 – halfer