Ev EvTimer 클래스

(PECL ev >= 0.2.0)


소개

EvTimer 감시자는 주어진 시간 후에 이벤트를 생성하고 선택적으로 그 이후에 일정한 간격으로 반복하는 간단한 상대 타이머입니다.

타이머는 실시간을 기반으로 합니다. 즉, 한 시간 후에 타임아웃되는 이벤트를 등록하고 시스템 시계를 작년 1월로 재설정하면 (대략) 1시간 후에도 여전히 타임아웃됩니다. "대략" 시간 점프를 감지하는 것은 어렵고 일부 부정확성은 불가피하기 때문입니다.

콜백은 타임아웃이 경과한 후에만 호출되도록 보장됩니다. 동일한 루프 반복 중에 여러 타이머가 준비되면 더 이른 시간 제한 값을 가진 타이머가 나중에 시간 제한 값이 있는 동일한 우선순위의 타이머보다 먼저 호출됩니다(그러나 콜백이 EvLoop::run()을 호출할 때 더 이상 사실이 아닙니다. 재귀적으로).

타이머 자체는 드리프트를 피하기 위해 최선을 다할 것입니다. 즉, 타이머가 10초마다 트리거되도록 구성된 경우 일반적으로 정확히 10초 간격으로 트리거됩니다. 그러나 스크립트가 10초보다 오래 걸리기 때문에 타이머를 따라갈 수 없는 경우) 타이머는 이벤트 루프 반복당 두 번 이상 실행되지 않습니다.


클래스 개요

                  
class EvTimer extends EvWatcher {

  /* Properties */
  public $repeat;
  public $remaining;

  /* Inherited properties */
  public $is_active;
  public $data;
  public $is_pending;
  public $priority;

  /* Methods */
  public __construct(
       float $after ,
       float $repeat ,
       callable $callback ,
       mixed $data = null ,
       int $priority = 0
  )
  public again(): void
  final public static createStopped(
       float $after ,
       float $repeat ,
       callable $callback ,
       mixed $data = null ,
       int $priority = 0
  ): EvTimer
  public set( float $after , float $repeat ): void

  /* Inherited methods */
  public EvWatcher::clear(): int
  public EvWatcher::feed( int $revents ): void
  public EvWatcher::getLoop(): EvLoop
  public EvWatcher::invoke( int $revents ): void
  public EvWatcher::keepalive( bool $value = ?): bool
  public EvWatcher::setCallback( callable $callback ): void
  public EvWatcher::start(): void
  public EvWatcher::stop(): void
}
                  
                

Properties

repeat
repeat가 0.0이면 시간 초과에 도달하면 자동으로 중지됩니다. 양수이면 타이머가 수동으로 중지될 때까지 몇 초마다 반복적으로 다시 트리거되도록 자동으로 구성됩니다.
remaining
타이머가 실행될 때까지 남은 시간을 반환합니다. 타이머가 활성화되어 있으면 이 시간은 현재 이벤트 루프 시간에 상대적이고 그렇지 않으면 현재 구성된 타임아웃 값입니다.

즉, after 값이 5.0이고 repeat 값이 7.0EvTimer를 인스턴스화한 후 remaining5.0을 반환합니다. 타이머가 시작되고 1초가 지나면 remaining4.0을 반환합니다. 타이머가 만료되고 다시 시작되면 대략 7.0을 반환합니다(콜백 호출에도 시간이 걸리므로 약간 낮을 수 있음).


목차