Запускает выполнение задачи в фоновом режиме

# GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Запускает выполнение задачи в фоновом режиме

### Описание

public function GearmanClient::doBackground(string `$function`, string `$workload`, ?string `$unique` = `null`): string

Запускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.

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

`function`
  Зарегистрированная функция, которую вызывает рабочий процесс
`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() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open