Класс 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 function __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static function createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Наследуемые методы */
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
}

Содержание

  • EvIdle::__construct — Конструктор наблюдателя EvIdle
  • EvIdle::createStopped — Создать объект класса EvIdle, но не запускает наблюдателя
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top