<blockquote class="danger">代码未经项目实测,仅供参考</blockquote> `config`下新建 <details> <summary>timer.php</summary> ~~~ <?php return [ [ //执行周期(毫秒) 'tally' => 2000, //事件名称-注意大小写 'event' => 'Timer', //是否等待事件-事件业务完成后开始周期计算 'wait' => true ] ]; ~~~ </details> `app\subscribe`下新建 <details> <summary>Timer.php</summary> ~~~ <?php namespace app\subscribe; //定时任务事件监听 class Timer { /** * 命名规范是on+事件标识,所以该方法的事件名称为event('Timer') */ public function onTimer() { var_dump(time()); } } ~~~ </details> 启动后输出如下 ![](https://img.kancloud.cn/d1/a2/d1a2b8d9bfc74d77c00e428c56d5f8f6_377x155.png) 实现过程在`app\listener\SwooleBoot.php`:`private function initTimer()` 等待模式是通过新建一个`Process`通过`\Co::sleep`完成,非等待模式为`swoole_timer_tick`.两者均为毫秒级控制.