EvStat 类

(PECL ev >= 0.2.0)

简介

EvStat 监视文件系统路径以查找属性更改。它会定期(或当操作系统发出更改信号时)在该路径上调用 stat(),并查看它是否与上次相比发生了更改,如果发生更改,则调用回调。

路径不必存在:“路径存在”更改为“路径不存在”与任何其他状态更改一样。条件“路径不存在”由 'nlink' 项为 0 表示(由 EvStat::attr() 方法返回)。

路径不得以斜杠结尾或包含特殊组件,例如 '.'.. 。路径应为绝对路径:如果它是相对路径并且工作目录发生更改,则行为未定义。

由于没有可用的可移植更改通知接口,因此可移植实现只是定期在路径上调用 stat() 以查看它是否以某种方式发生了更改。在这种情况下,可以指定推荐的轮询间隔。如果指定了 0.0 的轮询间隔(强烈推荐),则将使用适当的、未指定的默认值(可以预期大约为 5 秒,尽管这可能会动态变化)。libev 还会强加一个最小间隔,目前大约为 0.1 ,但这通常是过度杀伤。

此监视器类型不适用于大量 EvStat 监视器,因为即使使用操作系统支持的更改通知,这也会占用大量资源。

类概要

class EvStat extends EvWatcher {
/* 属性 */
public $path;
public $interval;
/* 继承的属性 */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* 方法 */
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
/* 继承的方法 */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

属性

interval

只读。有关预期更改检测速度的提示,通常应指定为 0.0,以让 libev 选择合适的值。

path

只读。要等待其状态更改的路径。

目录

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top