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 __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Métodos heredados */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Tabla de contenidos

add a note

User Contributed Notes

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