# GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Ejecuta una tarea en segundo plano

### Descripción

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

Ejecuta una tarea en segundo plano, retornando el manejador del trabajo que puede ser usado para obtener el estado de la tarea en ejecución.

### Parámetros

`function_name`

  Función registrada que ejecutará el worker

`workload`

  Datos serializados a ser procesados

`unique`

  ID único para identificar una tarea en particular

### Valores devueltos

El manejador de la tarea enviada.

### Ejemplos

Ejemplo #1 Envío y monitorización de un trabajo en segundo plano

El trabajador de este ejemplo tiene un retardo artificial introducido para imitar un trabajo de larga duración. El script cliente comprueba periódicamente el estado del trabajo en ejecución.

`<?php
/* Creamos nuestro objeto */
$gmclient= new GearmanClient();
/* Añade el servidor por defecto */
$gmclient->addServer();
/* Ejecuta un cliente "reverse" */
$job_handle = $gmclient->doBackground("reverse", "this is a test");
if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "bad return code\n";
exit;
}
$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // el trabajo se conoce, así que no se hace
$done = true;
echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denominator: " . $stat[3] . "\n";
}
while(!$done);
echo "done!\n";
?>`

El resultado del ejemplo sería algo similar a:

    Running: true, numerator: 3, denominator: 14
    Running: true, numerator: 6, denominator: 14
    Running: true, numerator: 9, denominator: 14
    Running: true, numerator: 12, denominator: 14
    Running: false, numerator: 0, denominator: 0
    done!

### Ver también

- GearmanClient::doNormal() - Ejecutar una única tarea y devolver un resultado
- GearmanClient::doHigh() - Ejecuta una tarea de prioridad alta
- GearmanClient::doLow() - Ejecuta una tarea de baja prioridad
- GearmanClient::doHighBackground() - Ejecuta una tarea de alta prioridad en segundo plano
- GearmanClient::doLowBackground() - Ejecuta una tarea de prioridad baja en segundo plano