PHP Conference Japan 2024

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped创建已停止的 EvTimer 监视器对象

描述

final public static EvTimer::createStopped(
     float $after,
     float $repeat,
     callable $callback,
     mixed $data = null,
     int $priority = 0
): EvTimer

创建已停止的 EvTimer 监视器对象。与 EvTimer::__construct() 不同,此方法不会自动启动监视器。

参数

after

配置计时器,使其在 after 秒后触发。

repeat

如果 repeat 为 0.0,则在超时后它将自动停止。如果为正数,则计时器将自动配置为每隔 repeat 秒再次触发,直到手动停止。

callback

参见 监视器回调

data

与监视器关联的自定义数据。

priority

监视器优先级

返回值

成功时返回 EvTimer 监视器对象。

示例

示例 #1 监控 /var/log/messages 的更改。通过 1 秒的延迟避免错过更新

<?php
$timer
= EvTimer::createStopped(0., 1.02, function ($w) {
$w->stop();

$stat = $w->data;

// 在文件最近一次更改后 1 秒
printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
// 重置计时器监视器
$timer->again();
});

$timer->data = $stat;

Ev::run();
?>

参见

添加注释

用户贡献的注释

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