CakeFest 2024: The Official CakePHP Conference

Класс EvIdle

(PECL ev >= 0.2.0)

Введение

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

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

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

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

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

class EvIdle extends EvWatcher {
/* Наследуемые свойства */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Методы */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Наследуемые методы */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Содержание

add a note

User Contributed Notes

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