函数名称: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()
,事件处理完后会保持停止状态并从事件循环中移除。