GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackgroundRun a task in the background

Beschreibung

publicGearmanClient::doBackground(string$function, string$workload, ?string$unique = null): string

Runs a task in the background, returning a job handle which can be used to get the status of the running task.

Parameter-Liste

function

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

The job handle for the submitted task.

Beispiele

Beispiel #1 Submit and monitor a background job

The worker in this example has an artificial delay introduced to mimic a long running job. The client script periodically checks the status of the running job.

<?php


$gmclient= new GearmanClient();


$gmclient->addServer();


$job_handle = $gmclient->doBackground("reverse", "this is a test");

if (
$gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo
"bad return code\n";
exit;
}

$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!
$stat[0]) // the job is known so it is not done
$done = true;
echo
"Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denominator: " . $stat[3] . "\n";
}
while(!
$done);

echo
"done!\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Running: true, numerator: 3, denominator: 14 Running: true, numerator: 6, denominator: 14 Running: true, numerator: 9, denominator: 14 Running: true, numerator: 12, denominator: 14 Running: false, numerator: 0, denominator: 0 done!

Siehe auch

To Top