GearmanClient::addTaskLowBackground
GearmanClient::clearCallbacks
GearmanClient
PHP Manual

# GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Add a task to get status

### 説明

public GearmanTask GearmanClient::addTaskStatus ( string `$job_handle` [, string `&$context` ] )

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

### パラメータ

`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

### 返り値

A GearmanTask object.

### 例

例1 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++;
}
?>`

上の例の出力は、 たとえば以下のようになります。

    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

### 参考

- GearmanClient::setStatusCallback - Set a callback for collecting task status

GearmanClient::addTaskLowBackground
GearmanClient::clearCallbacks
GearmanClient
PHP Manual