La clase EvIdle

(PECL ev >= 0.2.0)

Introducción

Los observadores EvIdle lanzan los eventos cuando ningún otro evento con la misma (o superior) prioridad está pendiente (EvPrepare, EvCheck y otros observadores EvIdle no cuentan como eventos).

Asimismo, mientras el proceso está gestionando sockets o tiempos de espera máximos (o incluso señales) de la misma prioridad (o de prioridad superior), no se lanzará. Pero cuando el proceso está inactivo (o solo hay observadores con prioridad baja pendientes), los observadores EvIdle serán llamados una vez por iteración del bucle de eventos - y esto, mientras no se detengan, o el proceso no reciba más eventos y se ocupe así de gestionar trabajos con prioridad superior.

Además de mantener el proceso no bloqueante (lo cual es útil a veces), los observadores EvIdle son un buen lugar para realizar "trabajos en pseudo-segundo plano", o reprogramar trabajos después de que el bucle de eventos haya gestionado los eventos excepcionales.

El efecto más notable es que, mientras los observadores idle estén activos, el proceso no se bloqueará al esperar nuevos eventos.

Sinopsis de la Clase

class EvIdle extends EvWatcher {
/* Propiedades heredadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public function __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static function createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Métodos heredados */
public function EvWatcher::clear(): int
public function EvWatcher::feed( int $revents ): void
public function EvWatcher::getLoop(): EvLoop
public function EvWatcher::invoke( int $revents ): void
public function EvWatcher::keepalive( bool $value = ?): bool
public function EvWatcher::setCallback( callable $callback ): void
public function EvWatcher::start(): void
public function EvWatcher::stop(): void
}

Tabla de contenidos

add a note

User Contributed Notes

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