函數(shù)名稱:EvPeriodic::createStopped()
函數(shù)描述:創(chuàng)建一個停止狀態(tài)的周期事件
適用版本:ev >= 1.0.0
用法示例:
<?php
$base = new EvLoop();
$periodic = EvPeriodic::createStopped(2, 0, function ($watcher) use (&$base) {
echo "Periodic event\n";
// 如果執(zhí)行完所有操作后,仍想保持事件處于停止狀態(tài),
// 可以使用 $watcher->stop() 方法
$watcher->stop();
// 從事件循環(huán)中移除周期事件,可以使用 $base->clear($watcher) 方法
$base->clear($watcher);
});
// 啟動周期事件,可以使用 $periodic->start() 方法
$periodic->start();
$base->loop();
?>
說明:
- EvPeriodic::createStopped() 函數(shù)創(chuàng)建一個停止狀態(tài)的周期事件,需要指定周期的時間間隔和延遲。
- 第一個參數(shù)(2)是周期事件的時間間隔,表示事件每隔多久重復觸發(fā)一次,單位是秒。
- 第二個參數(shù)(0)是事件延遲時間,表示事件第一次觸發(fā)前需要等待的時間,單位是秒。
- 第三個參數(shù)是一個回調(diào)函數(shù),當事件觸發(fā)時會執(zhí)行該回調(diào)函數(shù)。可以在回調(diào)函數(shù)中添加自己的邏輯處理。
- 使用
$watcher->stop()
可以手動停止事件,并保持事件處于停止狀態(tài)。 - 使用
$base->clear($watcher)
可以從事件循環(huán)中移除周期事件。 - 使用
$periodic->start()
啟動周期事件,事件會開始觸發(fā)。 - 使用
$base->loop()
開啟事件循環(huán),讓事件持續(xù)觸發(fā)。 - 在上面的示例中,周期事件每隔2秒觸發(fā)一次,回調(diào)函數(shù)會輸出 "Periodic event" 字符串。事件會在第一次觸發(fā)前等待0秒。在回調(diào)函數(shù)中,添加了
$watcher->stop()
,事件處理完后會保持停止狀態(tài)并從事件循環(huán)中移除。