PHP Conference Japan 2024

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped建立已停止的 EvTimer 觀察器物件

描述

final public static EvTimer::createStopped(
     浮點數 $after,
     浮點數 $repeat,
     可呼叫 $callback,
     混合 $data = null,
     整數 $priority = 0
): EvTimer

建立一個停止狀態的 EvTimer 監聽器物件。與 EvTimer::__construct() 不同,這個方法不會自動啟動監聽器。

參數

after

設定計時器在 after 秒後觸發。

repeat

如果 repeat 為 0.0,則計時器在逾時後會自動停止。如果它是正數,則計時器會自動設定為每隔 repeat 秒再次觸發,直到手動停止。

callback

參考 監聽器回呼

data

與監聽器關聯的自定義數據。

priority

監聽器優先級

返回值

成功時返回 EvTimer 監聽器物件。

範例

範例 #1 監控 /var/log/messages 的變化。透過一秒的延遲避免遺漏更新

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

$stat = $w->data;

// 檔案最近一次變更後 1 秒
printf("目前大小:%ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
// 重設計時器監聽器
$timer->again();
});

$timer->data = $stat;

Ev::run();
?>

參見

新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top