PHP 5.4.36 Released

La classe EvIdle

(PECL ev >= 0.2.0)

Introduction

Les watchers EvIdle lancent les événements lorsqu'aucun autre événement ayant la même (ou supérieure) priorité n'est en attente (EvPrepare, EvCheck et d'autres watchers EvIdle ne comptent pas recevoir d'événements).

Aussi, tant que le processus est en cours de gestion des sockets ou des délais d'attente maximal (ou même de signaux) de même priorité (ou de priorité supérieure), il ne sera pas lancé. Mais lorsque le processus est au ralenti (ou que seuls des watchers ayant une priorité basse ne sont en attente), les watchers EvIdle seront appelés une fois par itération de la boucle d'événements - et ce, tant qu'ils ne sont pas stoppés, ou que le processus ne recoive plus d'événements et devienne ainsi occupé à gérer les travaux ayant une priorité supérieure.

En plus de maintenir le processus non bloquant (ce qui est utile parfois), les watchers EvIdle sont un bon endroit pour réaliser des "travaux en pseudo-arrière plan", ou remettre des travaux après que la boucle d'événements n'ait gérée les événements exceptionnels.

L'effet le plus notable est que, tant que des watchers idle sont actifs, le processus ne va pas bloquer lors de l'attente de nouveaux événements.

Synopsis de la classe

EvIdle extends EvWatcher {
/* Propriétés héritées */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Méthodes */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, mixed $data [, int $priority ]] )
/* Méthodes héritées */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Sommaire

add a note add a note

User Contributed Notes

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