- 队列任务使用 MySQL 保存任务状态和执行日志,Redis 负责秒级调度和待执行队列,PHP CLI Worker 多进程负责并发执行。
- Cron 任务仍然兼容,当前页面提供统一风格的列表、日志、暂停、恢复、重跑、取消管理。
- 现有业务继续调用
Cron::addCron() 即可,系统会同步写入队列表,并保留旧 cron fallback。
- 任务执行仍复用 ThinkPHP 事件:
event($event, ['relate_id' => $relate_id])。
首次升级请执行 SQL 文件:
app/install/source/cron_queue.sql
推荐 Supervisor 配置示例:
[program:yp-cron-scheduler]
command=php /www/wwwroot/yp_admin/think cron:scheduler --sleep=1
autostart=true
autorestart=true
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/yp_admin/runtime/cron-scheduler.log
[program:yp-cron-worker]
command=php /www/wwwroot/yp_admin/think cron:work --sleep=1
autostart=true
autorestart=true
numprocs=4
process_name=%(program_name)s_%(process_num)02d
redirect_stderr=true
stdout_logfile=/www/wwwroot/yp_admin/runtime/cron-worker.log
[program:yp-cron-recover]
command=php /www/wwwroot/yp_admin/think cron:recover --sleep=30 --timeout=300
autostart=true
autorestart=true
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/yp_admin/runtime/cron-recover.log