GearmanClient::doBackground - Запускает выполнение задачи в фоновом режиме
Вернуться к: GearmanClient
GearmanClient::doBackground
(PECL gearman >= 0.5.0)
GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме
Описание
$function_name
, string $workload
[, string $unique
] )Запускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.
Список параметров
-
function_name
-
Зарегистрированная функция, вызываемая рабочим процессом
-
workload
-
Сериализованные данные, подлежащие обработке
-
unique
-
Уникальный ID, назначаемый определенной задаче
Возвращаемые значения
Дескриптор текущего задания.
Примеры
Пример #1 Отправляет и отслеживает фоновое задание
Обработчик в этом примере имеет искусственную задержку, чтобы смоделировать длительное выполнение задания. Клиент периодически проверяет состояние выполняющегося задания.
<?php
/* создание объекта */
$gmclient= new GearmanClient();
/* указание сервера по умолчанию */
$gmclient->addServer();
/* запуск на выполнение клиента */
$job_handle = $gmclient->doBackground("reverse", "this is a test");
if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "bad return code\n";
exit;
}
$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // задание известно, но не выполнено
$done = true;
echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
}
while(!$done);
echo "done!\n";
?>
Результатом выполнения данного примера будет что-то подобное:
Running: true, numerator: 3, denomintor: 14 Running: true, numerator: 6, denomintor: 14 Running: true, numerator: 9, denomintor: 14 Running: true, numerator: 12, denomintor: 14 Running: false, numerator: 0, denomintor: 0 done!
Смотрите также
- GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
- GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
- GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
- GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
- GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме
Вернуться к: GearmanClient