3
2つの変数を同じワーカー関数にどのように渡しますか?たとえば、クライアントから渡された2つの文字列を連結したいとします。いくつかのコード例では配列が使用されていましたが、動作させることはできません。複数の変数をGearmanワーカー関数に渡す
<?php
$client= new GearmanClient();
$client->addServer();
$arguments = array(
"string1" => "hey",
"string2" => "there"
);
$client->addTask("string_concat", $arguments);
$client->runTasks();
?>
これは無効なワークロードだと言いますが(これは配列が渡されたためです)どのように私はそれらを渡す必要があります - 私はそれぞれのためのタスクを作成する必要がありますか?
次に、配列を送信できない場合、ワーカー関数で複数の変数を使用するにはどうすればよいですか。私は関数String_Concat($ job、$ job2)のようにしようとしましたが、ワークロード()にそれらをどのように追加するのか分かりません
配列を渡すことができた場合のコード例を次に示します。
<?php
$worker= new GearmanWorker();
$worker->addServer();
$worker->addFunction("string_concat", "String_Concat");
while ($worker->work());
function String_Concat($job)
{
$arguments = $job->workload();
return $arguments["string1"] . $arguments["string2"];
}
?>
これを行うにはどうすればよいですか?どうもありがとう!
ああを行うことができます!ありがとうLayke、私はそれを扱うことができた: $ data = $ job-> workload(); if(is_string($ data)&& $ data = unserialize($ data)){$ var1 = $ data ["string1"]。 $ data ["string2"]; print $ var1; 乾杯!編集:動作するようにコードの書式を得ることができません - 目が痛いのは残念です – Jingo
Gearman *のPHPドキュメントは、データを文字列ではないワーカーにデータを送信したり、任意の例:-) – Eno