3

ドキュメントからサンプルのGearmanワーカーを実行しようとしていますが(以下を参照)、実行するたびに、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拡張機能は最新の安定バージョンです。他に何を試すべきかわかりません。

4

1 に答える 1

2

私の知る限り、バージョン1.0.2としてのGearmanのPECL拡張機能は、Gearmanバージョン0.29では機能しません。Gearmanとlibgearmanの両方をバージョン0.33に更新しましたが、更新するとすぐに拡張機能が機能していました。

于 2012-06-15T00:56:32.797 に答える