Наша группа в телеграмм для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

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


Описание

public GearmanTask GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

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


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

function_name -

Зарегистрированная функция, вызываемая рабочим процессом

workload -

Сериализованные данные, подлежащие обработке

context -

Контекст приложения, связываемый с задачей

unique -

Уникальный ID, назначаемый определенной задаче


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

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


Примеры

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

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


# создание клиента
$gmc= new GearmanClient();
# добавление сервера задач по умолчанию
$gmc->addServer();
# установка обратной функции для сигнализации о завершении задачи
$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, примеры использования класса gearmanclient.

Описание на ru2.php.net
Описание на php.ru

.

Популярное:


Содержание: