GearmanClient::addTaskStatus

Add a task to get status

&reftitle.description; public ``GearmanTask``false```GearmanClient::addTaskStatus` `string` `job_handle` `mixed` `context`&null;

Used to request status information from the Gearman server, which will call the specified status callback (set using `GearmanClient::setStatusCallback`).

&reftitle.parameters;

`job_handle`

- The job handle for the task to get status for

`context`

- Data to be passed to the status callback, generally a reference to an array or object

&reftitle.returnvalues;

A `GearmanTask` object or &false; on failure.

&reftitle.examples;

### Monitor completion of multiple background tasks

An artificial delay is introduced in the worker in this example to simulate a long running process. There is only one worker running for this example.

    <?php

    /* create our object */
    $gmclient= new GearmanClient();

    /* add the default server */
    $gmclient->addServer();

    /* start some background jobs and save the handles */
    $handles = array();
    $handles[0] = $gmclient->doBackground("reverse", "Hello World!");
    $handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

    $gmclient->setStatusCallback("reverse_status");

    /* Poll the server to see when those background jobs finish; */
    /* a better method would be to use event callbacks */
    do
    {
       /* Use the context variable to track how many tasks have completed */
       $done = 0;
       $gmclient->addTaskStatus($handles[0], &$done);
       $gmclient->addTaskStatus($handles[1], &$done);
       $gmclient->runTasks();
       echo "Done: $done\n";
       sleep(1);
    }
    while ($done != 2);

    function reverse_status($task, $done)
    {
       if (!$task->isKnown())
          $done++;
    }

    ?>

&example.outputs.similar;

    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 0
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 1
    Done: 2

&reftitle.seealso;

- `GearmanClient::setStatusCallback`