GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackgroundRun a task in the background

Açıklama

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.

Bağımsız Değişkenler

function

çalıştırılacak kayıtlı işçi işlev

workload

İşlenecek dizeleştirilmiş veri

unique

Belli bir görevi kimliklendirmek için kullanılacak benzersiz kimlik

Dönen Değerler

The job handle for the submitted task.

Örnekler

Örnek 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";

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

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!

Ayrıca Bakınız

To Top