Pool::submitTo - отправляет задачу конкретному работнику для выполнения
(PECL pthreads >= 2.0.0)
Pool::submitTo - отправляет задачу конкретному работнику для выполнения
Описание
Отправка задачи указанному работнику в пуле. Рабочие индексируются от 0 и будут существовать только в том случае, если пул должен создать их (так как потоки лениво порождаются).
Список параметров
worker-
Рабочий для стека задачи, индексированный от 0.
task-
Задача для выполнения.
Возвращаемые значения
Идентификатор работника, принявшего задачу.
Примеры
Пример #1 Отправка задач определенному работнику
<?php
class Task extends Threaded {
public function run() {
var_dump(Thread::getCurrentThreadID());
}
}
$pool = new Pool(2);
$pool->submit(new Task());
for ($i = 0; $i < 5; ++$i) {
$pool->submitTo(0, new Task()); // стек всех задач на первого работника
}
$pool->submitTo(1, new Task()); // не может сложить задачу на второго работника, потому что он еще не существует
$pool->shutdown();
Результат выполнения данного примера:
int(4475011072) int(4475011072) int(4475011072) int(4475011072) int(4475011072) int(4475011072) Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d