Ev EvStat 클래스

(PECL ev >= 0.2.0)


소개

EvStat은 속성 변경에 대한 파일 시스템 경로를 모니터링합니다. 일정한 간격으로(또는 OS가 변경 신호를 보낼 때) 해당 경로에서 stat()를 호출하고 마지막 시간과 비교하여 변경되었는지 확인하고 변경되었으면 콜백을 호출합니다.

경로가 존재할 필요는 없습니다. "경로가 있음"에서 "경로가 존재하지 않음"으로 변경하는 것은 다른 것과 마찬가지로 상태 변경입니다. "경로가 존재하지 않습니다"라는 조건은 'nlink' 항목이 0(EvStat::attr() 메서드에서 반환됨)임을 의미합니다.

경로는 슬래시로 끝나거나 '.'와 같은 특수 구성요소를 포함할 수 없습니다. 또는 .. . 경로는 절대적이어야 합니다. 상대 경로이고 작업 디렉토리가 변경되면 동작이 정의되지 않습니다.

사용 가능한 이식 가능한 변경 알림 인터페이스가 없기 때문에 이식 가능한 구현은 경로에서 정기적으로 stat()를 호출하여 어떻게든 변경되었는지 확인합니다. 이 경우 권장되는 폴링 간격을 지정할 수 있습니다. 폴링 간격을 0.0 으로 지정하면(매우 권장됨) 적절하고 지정되지 않은 기본값이 사용됩니다(동적으로 변경될 수 있지만 약 5초로 예상할 수 있음). libev는 또한 현재 약 0.1인 최소 간격을 부과하지만 이는 일반적으로 과잉입니다.

이 감시자 유형은 OS 지원 변경 알림을 사용하더라도 리소스 집약적일 수 있으므로 많은 수의 EvStat 감시자를 위한 것이 아닙니다.


클래스 개요

                  
class EvStat extends EvWatcher {

  /* Properties */
  public $path;
  public $interval;

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

  /* Methods */
  public __construct(
       string $path ,
       float $interval ,
       callable $callback ,
       mixed $data = null ,
       int $priority = 0
  )
  public attr(): array
  final public static createStopped(
       string $path ,
       float $interval ,
       callable $callback ,
       mixed $data = null ,
       int $priority = 0
  ): void
  public prev(): void
  public set( string $path , float $interval ): void
  public stat(): bool

  /* 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

interval
읽기 전용 . 변경이 얼마나 빨리 감지될 것으로 예상되는지에 대한 힌트이며 일반적으로 libev가 적절한 값을 선택할 수 있도록 0.0으로 지정해야 합니다.
path
읽기 전용 . 상태 변경을 기다리는 경로입니다.

목차