Наша группа в телеграмм для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Добавить задачу для получения статуса


Описание

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

Используется для запроса информации о состоянии с сервера Gearman, который будет вызывать указанный обратный вызов статуса (устанавливаются с помощью GearmanClient::setStatusCallback()).


Список параметров

job_handle -

Дескриптор задания для получения статуса задачи

context -

Данные, которые будут переданы обратному вызову. Обычно ссылка на массив или объект


Возвращаемые значения

Объект GearmanTask.


Примеры

Пример #1 Монитор завершения множественных фоновых задач

В этом примере представлена искусственная задержка в работнике, чтобы смоделировать долгий рабочий процесс. Есть только один рабочий, запущенный для этого примера.


/* создание клиентского объекта */
$gmclient= new GearmanClient();
/* добавление сервера задач по умолчанию */
$gmclient->addServer();
/* запуск некоторых фоновых задач и сохранение дескрипторов */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");
$gmclient->setStatusCallback("reverse_status");
/* Опрос сервера с целью определения, когда завершатся фоновые задачи; */
/* лучшим методом может быть использование обратных вызовов на события */
do
{
   /* используем контекстные переменные для слежения за тем, сколько задач выполнилось */
   $done = 0;
   $gmclient->addTaskStatus($handles[0], &$done);
   $gmclient->addTaskStatus($handles[1], &$done);
   $gmclient->runTasks();
   echo "Выполнено: $done\n";
   sleep(1);
}
while ($done != 2);
function reverse_status($task, $done)
{
   if (!$task->isKnown())
      $done++;
}

Результатом выполнения данного примера будет что-то подобное:


Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 0
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 1
Выполнено: 2


Смотрите также


Описание класса gearmanclient, примеры использования класса gearmanclient.

Описание на ru2.php.net
Описание на php.ru

.

Популярное:


Содержание: