GearmanClient::doBackground
(PECL gearman >= 0.5.0)
GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме
Описание
$function_name
, string $workload
, string $unique
= ?
) : stringЗапускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.
Список параметров
-
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 "неуспешный код возврата\n";
exit;
}
$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // задание известно, но не выполнено
$done = true;
echo "Выполняется: " . ($stat[1] ? "true" : "false") . ", числитель: " . $stat[2] . ", знаменатель: " . $stat[3] . "\n";
}
while(!$done);
echo "завершено!\n";
?>
Результатом выполнения данного примера будет что-то подобное:
Выполняется: true, числитель: 3, знаменатель: 14 Выполняется: true, числитель: 6, знаменатель: 14 Выполняется: true, числитель: 9, знаменатель: 14 Выполняется: true, числитель: 12, знаменатель: 14 Выполняется: false, числитель: 0, знаменатель: 0 завершено!
Смотрите также
- GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
- GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
- GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
- GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
- GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме