CakeFest 2024: The Official CakePHP Conference

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitToSubmits a task to a specific worker for execution

Descripción

public Pool::submitTo(int $worker, Threaded $task): int

Submit a task to the specified worker in the pool. The workers are indexed from 0, and will only exist if the pool has needed to create them (since threads are lazily spawned).

Parámetros

worker

The worker to stack the task onto, indexed from 0.

task

The task for execution.

Valores devueltos

The identifier of the worker that accepted the task.

Ejemplos

Ejemplo #1 Submitting tasks to a specific worker

<?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()); // stack all tasks onto the first worker
}

$pool->submitTo(1, new Task()); // cannot stack the task onto the second worker due to it not existing yet

$pool->shutdown();

El resultado del ejemplo sería:

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top