(PECL gearman >= 0.5.0)
GearmanClient::doStatus — Получение статуса выполняющейся задачи
Возвращает статус обработки запущенной задачи. Этот метод вызывается между повторяющимися вызовами GearmanClient::doNormal().
Сигнатура функции не содержит параметров.
Массив, представляющий процентное отношение выполненной работы. Первый элемент соответствует количеству обработанных чанков, второй - общее количество данных.
Пример #1 Получение состояния выполнения долгого задания
В этом примере в обработчик, переворачивающий строку, внедрена задержка, чтобы смоделировать долго выполняющееся задание. После каждой паузы обработчик выполняет GearmanJob::status(), результат которого подхватывается клиентом.
<?php
echo "Запуск\n";
# Создаём объект клиента.
$gmclient= new GearmanClient();
# Добавляем сервер по умолчанию (localhost).
$gmclient->addServer();
echo "Отправка задание\n";
# Отправляем задание перевернуть строку
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Проверяем, есть ли ошибки или готовые данные.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      break;
    case GEARMAN_WORK_STATUS:
      # получить статус выполнения задания
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Статус: $numerator/$denominator завершено\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Ошибка\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "Код возврата: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);
echo "Успешно: $result\n";
?>Вывод приведённого примера будет похож на:
Запуск Отправка задания Состояние: 1/6 завершено Состояние: 2/6 завершено Состояние: 3/6 завершено Состояние: 4/6 завершено Состояние: 5/6 завершено Состояние: 6/6 завершено Успешно: !olleH
