定时器
最后更新于:2022-04-02 02:21:13
[TOC]
## 定时器
> [参考](https://www.easyswoole.com/Cn/BaseUsage/timer.html)
`dev.php`中
```
'SETTING' => [
'worker_num' => 8, //设置进程数
'reload_async' => true,
'max_wait_time'=>3
],
```
`EasySwooleEvent.php`mainServerCreate 函数中
```
$register->add(EventRegister::onWorkerStart, function (\swoole_server $server, $workerId) {
//只在第一个进程执行,这样只触发一次
if ($workerId == 0) {
\EasySwoole\Component\Timer::getInstance()->loop(2 * 1000, function () use ($workerId){
echo $workerId."\n";
});
// 例如:2秒后一个任务,3秒后一个任务 代码如下
\EasySwoole\Component\Timer::getInstance()->after(2 * 1000, function () {
//为了防止因为任务阻塞,引起定时器不准确,把任务给异步进程处理
Logger::getInstance()->console("time 2", false);
});
\EasySwoole\Component\Timer::getInstance()->after(3 * 1000, function () {
//为了防止因为任务阻塞,引起定时器不准确,把任务给异步进程处理
Logger::getInstance()->console("time 3", false);
});
}
});
```
';