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

<?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

LoadingChargement en cours