Добавить высокоприоритетную задачу для работы в параллельном режиме

# GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — Добавить высокоприоритетную задачу для работы в параллельном режиме

### Описание

public function GearmanClient::addTaskHigh(
string `$function_name`,
string|int|float `$workload`,
mixed `$context` = `null`,
?string `$unique_key` = `null`
): GearmanTask|false

Добавляет высокоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех высокоприоритетных задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

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

`function_name`
  Зарегистрированная функция, которую вызывает рабочий процесс
`workload`
  Сериализованные данные, которые подлежат обработке
`context`
  Контекст приложения, который связывается с задачей
`unique_key`
  Уникальный ID, который назначается конкретной задаче

### Возвращаемые значения

Объект GearmanTask или `false`, если задача не может быть добавлена.

### Примеры

Пример #1 Высокоприоритетная задача вместе с двумя обычными задачами

Высокоприоритетная задача включена в число двух других задач. Доступен единственный обработчик, так что задачи запускаются одна за другой, высокоприоритетные задачи выполняются в первую очередь.

    <?php

    # создание клиента
    $gmc= new GearmanClient();

    # добавление сервера задач по умолчанию
    $gmc->addServer();

    # установка callback-функции для уведомления о завершении задачи
    $gmc->setCompleteCallback("reverse_complete");

    # добавление задач, одна из которых высокоприоритетная
    $task= $gmc->addTask("reverse", "Hello World!", null, "1");
    $task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
    $task= $gmc->addTask("reverse", "Hello World!", null, "3");

    if (! $gmc->runTasks())
    {
        echo "Ошибка " . $gmc->error() . "\n";
        exit;
    }
    echo "Выполнено\n";

    function reverse_complete($task)
    {
        echo "Завершено: " . $task->unique() . ", " . $task->data() . "\n";
    }

    ?>

Вывод приведённого примера будет похож на:

    Завершено: 2, Hello World!
    Завершено: 3, !dlroW olleH
    Завершено: 1, !dlroW olleH
    Выполнено

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

- GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
- GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
- GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
- GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
- GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
- GearmanClient::runTasks() - Запустить список задач в параллельном режиме

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