Docs
系统里的说明
下面和后台「说明」是同一套:怎么用、后台每一栏、主题、模板标签,以及环境和安装。
定时任务和队列
采集、统计清理不会自己跑,要靠系统每分钟叫醒 Laravel。PHP / nginx 见「环境」。采集源在采集里配,间隔到了才会真正拉取。
调度会做什么
| 任务 | 何时 | 说明 |
|---|---|---|
| 采集 | 每分钟问一次 | 各采集源按自己的「间隔(分钟)」决定这次要不要抓 |
| 统计清理 | 每天 03:20 | 默认删掉 90 天以前的访问记录 |
本机 php artisan serve 或 Docker 试用可以不配。正式站至少要有下面「纯定时」那一行 cron,否则后台点「立即采集」才能跑。
怎么选模式
| CMS_COLLECT_MODE | 行为 | 还要什么进程 |
|---|---|---|
schedule(默认) | 定时到了就在当前进程里抓 | 只要 cron 每分钟跑 schedule:run |
queue | 定时只往队列丢任务 | cron + 常驻 queue:work(多站可共用) |
off | 不自动跑 | 只靠后台按钮或手动命令 |
CMS_STAT_PRUNE_MODE 同样三个值。改 .env 后执行 php artisan config:clear。
推荐:上线最小配置
CMS_SCHEDULE_ENABLED=true
CMS_COLLECT_MODE=schedule
CMS_STAT_PRUNE_MODE=schedule
* * * * * cd /var/www/leafcms && php artisan schedule:run >> /dev/null 2>&1
把路径换成你的项目根。Linux 用 crontab;Windows 用任务计划程序,每分钟执行同一条 php artisan schedule:run。
采集量大时用队列
CMS_SCHEDULE_ENABLED=true
CMS_COLLECT_MODE=queue
CMS_COLLECT_QUEUE=cms
CMS_STAT_PRUNE_MODE=queue
CMS_STAT_PRUNE_QUEUE=cms
QUEUE_CONNECTION=database
QUEUE_CONNECTION 不要用 sync,否则还是当场执行,等于没队列。可用 database 或 Redis。
* * * * * cd /var/www/leafcms && php artisan schedule:run >> /dev/null 2>&1
php artisan queue:work --queue=cms --sleep=1 --tries=1
第二行要常驻(systemd / supervisor)。挂了采集和清理都不会跑。
不用 Laravel 调度、自己写 cron
CMS_SCHEDULE_ENABLED=false
* * * * * cd /var/www/leafcms && php artisan cms:collect --sync
20 3 * * * cd /var/www/leafcms && php artisan cms:stat-prune --days=90 --sync
队列版把 --sync 换成 --queue,并同样要 queue:work --queue=cms。
手动命令
php artisan cms:collect
php artisan cms:collect --force
php artisan cms:collect --id=1 --force
php artisan cms:collect --queue
php artisan cms:collect --sync
php artisan cms:stat-prune --days=90
Docker 试用可 docker compose exec app php artisan cms:collect。演示环境一般不必配 cron。