# GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Exécute une tâche en arrière-plan

### Description

public GearmanClient::doBackground(string `$function`, string `$workload`, ?string `$unique` = `null`): string

Exécute une tâche en arrière-plan, retourne le gestionnaire de travaux qui pourra être utilisé pour récupérer le statut de la tâche en cours.

### Liste de paramètres

`function`

  Une fonction enregistrée que le travailleur va exécuter

`workload`

  Données sérialisées à analyser

`unique`

  Un identifiant unique utilisé pour identifier une tâche particulière

### Valeurs de retour

Le gestionnaire de travaux pour la tâche soumise.

### Exemples

Exemple #1 Soumet et surveille un travail en arrière-plan

L'agent de cet exemple a un délai artificiel introduit pour simuler un travail dont l'exécution prend beaucoup de temps. Le script du client vérifie périodiquement le statut du travail en cours.

`<?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 "Code retour erroné\n";
exit;
}
$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // the job is known so it is not done
$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 !

### Voir aussi

- GearmanClient::doNormal() - Exécute une tâche et retourne le résultat
- GearmanClient::doHigh() - Exécute une seule tâche en priorité haute
- GearmanClient::doLow() - Exécute une seule tâche en priorité basse
- GearmanClient::doHighBackground() - Exécute une tâche en priorité haute en arrière plan
- GearmanClient::doLowBackground() - Exécute une tâche en priorité basse en arrière-plan