Класс EvIdle

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvIdle вызывают события тогда, когда никакие другие события такого же или более высокого приоритета не находятся в ожидании (EvPrepare, EvCheck и другие наблюдатели EvIdle не считаются за получающие события).

Таким образом этот процесс занят обработкой сокетов или ожиданий (или даже сигналов) такого же или более высокого приоритета до тех пор, пока он не будет активирован. Но когда процесс находится в режиме ожидания (или в очереди только наблюдатели с более низким приоритетом), наблюдатели EvIdle будут вызываться единожды за итерацию цикла событий - пока не будут остановлены или пока процессом не будут получены новые сообщения и он не будет занят более приоритетными задачами.

Помимо поддержания неблокирующего процесса (который полезен в некоторых случаях), наблюдатели EvIdle являются хорошим местом для выполнения "псевдо-фоновой обработки" или задержки обработки данных до момента, пока цикл событий не обработает все исключительные события.

Наиболее заметный эффект проявляется в том, что пока спящие наблюдатели активны, процесс не будет блокироваться в процессе ожидания новых событий.

Обзор классов

EvIdle extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, mixed $data [, int $priority ]] )
/* Наследуемые методы */
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 )
}

Содержание