GearmanClient
PHP Manual

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatusAjoute une tâche pour obtenir le statut

Description

public GearmanTask GearmanClient::addTaskStatus ( string $job_handle [, string &$context ] )

Utilisé pour demander le statut au serveur Gearman, qui appellera le retour de statut spécifié (grâce à GearmanClient::setStatusCallback()).

Liste de paramètres

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

Valeurs de retour

Un objet GearmanTask.

Exemples

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

/* crée notre objet */
$gmclient= new GearmanClient();

/* ajoute le serveur par défaut */
$gmclient->addServer();

/* lance une tâche de fond et sauvegarde les descripteurs */
$handles = array();
$handles[0] = $gmclient->doBackground("inverse""Bonjour le monde!");
$handles[1] = $gmclient->doBackground("inverse""!ednom el ruojnoB");

$gmclient->setStatusCallback("inverse_statut");

/* Interroge le serveur pour voir quand les tâches de fond se terminent; */
/* une meilleure méthode consiste à appeler les retours d'événement */
do
{
   
/* Utilise la variable de contexte pour savoir combien de tâches ont été effectuées */
   
$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++;
}

?>

L'exemple ci-dessus va afficher quelque chose de 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

Voir aussi


GearmanClient
PHP Manual