【问题标题】:FATAL [ 0] gearman_packet_unpack_header:invalid command value致命 [ 0] gearman_packet_unpack_header:无效的命令值
【发布时间】:2012-06-14 01:36:45
【问题描述】:

我正在尝试运行 example Gearman worker from their documentation(见下文),但每次运行时,我的 Gearman 日志文件中都会出现大量错误,如下所示:FATAL [ 0] gearman_packet_unpack_header:invalid command value。当我运行 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:

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 扩展是最新的稳定版本。我不确定还能尝试什么。

【问题讨论】:

    标签: php ubuntu gearman


    【解决方案1】:

    据我所知,Gearman 1.0.2 版的 PECL 扩展不适用于 Gearman 0.29 版。我将 Gearman 和 libgearman 都更新到了 0.33 版,并且我的扩展程序一完成就可以工作了。

    【讨论】:

    • 我遇到过类似的问题,但并不完全相同。我已经放弃了 PECL 扩展,并且正在切换到 PEAR 的 Net_Gearman - 因为它是 PHP,我希望它能够更好地适应版本/架构差异。
    猜你喜欢
    • 2021-07-12
    • 2020-08-15
    • 2016-07-05
    • 2022-01-23
    • 2017-10-04
    • 1970-01-01
    • 2011-10-15
    • 2013-12-04
    相关资源
    最近更新 更多