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


(PECL gearman >= 0.5.0)

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

Описание

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

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

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

job_handle

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

context

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

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

Объект GearmanTask.

Примеры

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

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

<?php

/* создание клиентского объекта */
$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::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий