The example above reads:
if (!$stat[0]) // the job is known so it is not done
I think the comment is wrong, it should read "the job is unknown, so it is done".
Regards,
Jan
(PECL gearman >= 0.5.0)
GearmanClient::jobStatus -- gearman_job_status — Récupère le statut d'un travail en arrière-plan
Style orienté objet (méthode) :
Récupère le statut d'un travail en arrière-plan pour le gestionnaire de travaux fourni. Les informations de statut spécifient si le travail est connu, si le travail est actuellement en cours d'exécution, ainsi que le pourcentage de réalisation.
job_handle
Le gestionnaire de travaux assigné par le serveur Gearman
Un tableau contenant les informations de statut pour le travail correspondant au gestionnaire de travaux fourni. Le premier élément est un booléen indiquant si le travail est connu, le second est un booléen indiquant si le travail est en cours d'exécution, le troisième et le quatrième correspondent au numérateur et dénominateur du pourcentage de réalisation.
Exemple #1 Surveille le statut d'un travail en arrière-plan mettant du temps à s'exécuter
<?php
/* Crée un client */
$gmclient= new GearmanClient();
/* Ajoute un serveur par défaut */
$gmclient->addServer();
/* Exécute le client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");
if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "Mauvais code retour\n";
exit;
}
$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // le travail est connu, signifiant qu'il n'est pas terminé
$done = true;
echo "Exécution : " . ($stat[1] ? "true" : "false") . ", numérateur : " . $stat[2] . ", dénominateur : " . $stat[3] . "\n";
}
while(!$done);
echo "fait !\n";
?>
Résultat de l'exemple ci-dessus est similaire à :
Exécution : true, numérateur : 3, dénominateur : 14 Exécution : true, numérateur : 6, dénominateur : 14 Exécution : true, numérateur : 9, dénominateur : 14 Exécution : true, numérateur : 12, dénominateur : 14 Exécution : false, numérateur : 0, dénominateur : 0 fait !
The example above reads:
if (!$stat[0]) // the job is known so it is not done
I think the comment is wrong, it should read "the job is unknown, so it is done".
Regards,
Jan
@Jan
if (!$stat[0]) // the job is known so it is not done
I believe to be correct. I read it as, if $stat[0] returns anything but false, the job is currently running, so we are not done. However, if we cannot find $stat[0] (ie: the job handle no longer exists) then the job is done.
--Richard