(PECL gearman >= 0.5.0)
GearmanClient::doStatus â RĂ©cupĂšre le statut de la tĂąche en cours
Retourne le statut de la tĂąche en cours. Il pourra ĂȘtre utilisĂ© lors de multiples appels Ă la mĂ©thode GearmanClient::doNormal().
Cette fonction ne contient aucun paramĂštre.
Un tableau représentant le pourcentage de réalisation fourni sous la forme d'une fraction, dont le premier élément est le numérateur, et le second, le dénominateur.
Exemple #1 RécupÚre le statut d'un travail dont l'exécution prend du temps
L'agent dans cet exemple a un délai artificiel ajouté lors de l'exécution de la fonction. AprÚs chaque délai, il appelle la méthode GearmanJob::status() dont le client récupÚre l'information.
<?php
echo "Début\n";
# Crée un client.
$gmclient= new GearmanClient();
# Ajoute un serveur par défaut (localhost).
$gmclient->addServer();
echo "Envoi d'un travail\n";
# Envoi du travail
do
{
$result = $gmclient->doNormal("reverse", "Hello!");
# Vérifie les différents paquets et erreurs retournés.
switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
break;
case GEARMAN_WORK_STATUS:
# RécupÚre le statut du travail en cours
list($numerator, $denominator)= $gmclient->doStatus();
echo "Statut : $numerator/$denominator terminé\n";
break;
case GEARMAN_WORK_FAIL:
echo "Ăchec \n";
exit;
case GEARMAN_SUCCESS:
break;
default:
echo "RET : " . $gmclient->returnCode() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);
echo "SuccĂšs : $result\n";
?>Résultat de l'exemple ci-dessus est similaire à :
Début Envoi d'un travail Statut : 1/6 complete Statut : 2/6 complete Statut : 3/6 complete Statut : 4/6 complete Statut : 5/6 complete Statut : 6/6 complete SuccÚs : !olleH