函式名稱:EvPeriodic::createStopped()
函式描述:建立一個停止狀態的週期事件
適用版本:ev >= 1.0.0
用法示例:
<?php
$base = new EvLoop();
$periodic = EvPeriodic::createStopped(2, 0, function ($watcher) use (&$base) {
echo "Periodic event\n";
// 如果執行完所有操作後,仍想保持事件處於停止狀態,
// 可以使用 $watcher->stop() 方法
$watcher->stop();
// 從事件迴圈中移除週期事件,可以使用 $base->clear($watcher) 方法
$base->clear($watcher);
});
// 啟動週期事件,可以使用 $periodic->start() 方法
$periodic->start();
$base->loop();
?>
說明:
- EvPeriodic::createStopped() 函式建立一個停止狀態的週期事件,需要指定週期的時間間隔和延遲。
- 第一個引數(2)是週期事件的時間間隔,表示事件每隔多久重複觸發一次,單位是秒。
- 第二個引數(0)是事件延遲時間,表示事件第一次觸發前需要等待的時間,單位是秒。
- 第三個引數是一個回撥函式,當事件觸發時會執行該回撥函式。可以在回撥函式中新增自己的邏輯處理。
- 使用
$watcher->stop()
可以手動停止事件,並保持事件處於停止狀態。 - 使用
$base->clear($watcher)
可以從事件迴圈中移除週期事件。 - 使用
$periodic->start()
啟動週期事件,事件會開始觸發。 - 使用
$base->loop()
開啟事件迴圈,讓事件持續觸發。 - 在上面的示例中,週期事件每隔2秒觸發一次,回撥函式會輸出 "Periodic event" 字串。事件會在第一次觸發前等待0秒。在回撥函式中,新增了
$watcher->stop()
,事件處理完後會保持停止狀態並從事件迴圈中移除。