Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 17726 программистов и 1698 роботов. Сейчас ищут 1712 программистов ...
Приступая к работе

GearmanClient::doStatus - Получение статуса обработки задания

Вернуться к: GearmanClient

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatusПолучение статуса обработки задания

Описание

public array GearmanClient::doStatus ( void )

Возвращает статус обработки задания. Этот метод вызывается между повторяющимися вызовами 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

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

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanJob::status() - Отправка статуса задания (устаревший метод)



Вернуться к: GearmanClient

© 2024 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware