GearmanClient::addTaskBackground
(PECL gearman >= 0.5.0)
GearmanClient::addTaskBackground — Додати фонове завдання для роботи в паралельному режимі
Опис
public GearmanClient::addTaskBackground( 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 Два завдання, одне у фоновому режимі, а інше ні
Цей приклад ілюструє різницю між виконанням фонової задачі і звичайним завданням. Клієнт додає дві задачі для виконання тих самих функцій, але одна додана за допомогою addTaskBackground(). Callback-функція встановлена так, щоб виконання завдання можна було простежити. Простий обробник зі штучною затримкою повідомляє статус виконання завдання, і клієнт розуміє це через виклик callback-функції. Два обробники запущені для цього прикладу. Зверніть увагу, що фонове завдання не відображається у клієнтському висновку.
Loading...
Loading...
Виведення робітника для двох запущених працівників:
Полученная задача: H:foo.local:65
Рабочая нагрузка: !dlroW olleH (12)
1/12 выполнено
Полученная задача: H:foo.local:66
Рабочая нагрузка: Hello World! (12)
Отправка статуса: 1/12 выполнено
Отправка статуса: 2/12 выполнено
Отправка статуса: 2/12 выполнено
Отправка статуса: 3/12 выполнено
Отправка статуса: 3/12 выполнено
Отправка статуса: 4/12 выполнено
Отправка статуса: 4/12 выполнено
Отправка статуса: 5/12 выполнено
Отправка статуса: 5/12 выполнено
Отправка статуса: 6/12 выполнено
Отправка статуса: 6/12 выполнено
Отправка статуса: 7/12 выполнено
Отправка статуса: 7/12 выполнено
Отправка статуса: 8/12 выполнено
Отправка статуса: 8/12 выполнено
Отправка статуса: 9/12 выполнено
Отправка статуса: 9/12 выполнено
Отправка статуса: 10/12 выполнено
Отправка статуса: 10/12 выполнено
Отправка статуса: 11/12 выполнено
Отправка статуса: 11/12 выполнено
Отправка статуса: 12/12 выполнено
Отправка статуса: 12/12 выполнено
Результат: !dlroW olleH
Результат: Hello World!
Клієнт виводить:
Статус: 1, H:foo.local:66 - 1/12
Статус: 1, H:foo.local:66 - 2/12
Статус: 1, H:foo.local:66 - 3/12
Статус: 1, H:foo.local:66 - 4/12
Статус: 1, H:foo.local:66 - 5/12
Статус: 1, H:foo.local:66 - 6/12
Статус: 1, H:foo.local:66 - 7/12
Статус: 1, H:foo.local:66 - 8/12
Статус: 1, H:foo.local:66 - 9/12
Статус: 1, H:foo.local:66 - 10/12
Статус: 1, H:foo.local:66 - 11/12
Статус: 1, H:foo.local:66 - 12/12
Завершено: 1, !dlroW olleH
Выполнено
Дивіться також
- GearmanClient::addTask() - Додати завдання, яке буде виконано у паралельному режимі
- GearmanClient::addTaskHigh() - Додати високопріоритетне завдання для роботи в паралельному режимі
- GearmanClient::addTaskLow() - Додати низькопріоритетне завдання для роботи в паралельному режимі
- GearmanClient::addTaskHighBackground() - Додати високопріоритетне фонове завдання для роботи в паралельному режимі
- GearmanClient::addTaskLowBackground() - Додати низькопріоритетне фонове завдання для роботи в паралельному режимі
- GearmanClient::runTasks() - Запустити список завдань у паралельному режимі