hyperf引入定时任务核心是安装hyperf/crontab并配置调度进程:执行composer require hyperf/crontab自动注册;在config/autoload/processes.php中添加hyperf\crontab\process\crontabdispatcherprocess::class;将config/autoload/crontab.php的enable设为true,纯协程驱动无需系统crond。

Hyperf 项目引入定时任务组件,核心是安装 hyperf/crontab 并完成基础配置,整个过程不依赖系统 crond,纯协程驱动,开箱即用。
安装组件依赖
执行以下命令安装官方定时任务组件:
composer require hyperf/crontab
该组件会自动注册服务提供者,无需手动在 config/autoload/dependencies.php 中额外添加(Hyperf 3.0+ 已支持自动发现)。
启用定时任务调度进程
在 config/autoload/processes.php 中注册调度器进程,确保它随主服务一同启动:
- 添加
Hyperf\Crontab\Process\CrontabDispatcherProcess::class到返回数组中
这是关键一步——没有它,即使配置了任务也不会被调度执行。
开启并配置 crontab 模块
确保 config/autoload/crontab.php 存在且启用:
- 若文件不存在,可运行
php bin/hyperf.php vendor:publish hyperf/crontab生成默认配置 - 将
'enable' => true设置为 true - 可选设置
'timezone' => 'Asia/Shanghai',避免 cron 表达式因时区偏差误判
验证是否生效
启动服务后观察控制台日志:
- 成功加载会输出类似
[INFO] Crontab dispatcher process started - 任务首次执行不会立即触发,而是等待下一个匹配时间点(例如设为
* * * * *,则从下一分钟整点开始执行)











