(PECL gearman >= 0.5.0)
GearmanClient::addTaskStatus — Ajoute une tâche pour obtenir le statut
Utilisé pour demander le statut au serveur Gearman, qui appellera le retour de statut spécifié (grâce à GearmanClient::setStatusCallback()).
job_handle
Les descripteur pour la tâche dont on souhaite le statut
context
Les données à passer au retour de statut, généralement une référence à un tableau ou à un objet
Un objet GearmanTask ou false
en cas d'échec.
Exemple #1 Surveiller l'accomplissement de plusieurs tâches de fond
Un délai artificiel est introduit dans l'agent de cet exemple pour simuler un processus long. Il n'y a qu'un agent qui est lancé dans cet exemple.
<?php
$gmclient= new GearmanClient();
$gmclient->addServer();
$handles = array();
$handles[0] = $gmclient->doBackground("inverse", "Bonjour le monde!");
$handles[1] = $gmclient->doBackground("inverse", "!ednom el ruojnoB");
$gmclient->setStatusCallback("inverse_statut");
do
{
$done = 0;
$gmclient->addTaskStatus($handles[0], &$done);
$gmclient->addTaskStatus($handles[1], &$done);
$gmclient->runTasks();
echo "Fait : $done\n";
sleep(1);
}
while ($done != 2);
function inverse_statut($task, $done)
{
if (!$task->isKnown())
$done++;
}
?>
Résultat de l'exemple ci-dessus est similaire à :
Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 0 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 1 Fait : 2