前言
又收到主机运营商催费账单了,买了好多服务器貌似利用率太低,为了少花点钱,决定将一些网站整合,关的关。虽然之前搭的 v2board 一直在服务器上吃灰,但偶尔也要研究一下换成 xboard 等,就将这一坨顺手迁移到了另外一台服务器上。
本想着轻车熟路,无非就是迁移数据库和网站目录,重新添加系统任务,可某天扫了一眼,发现首页的统计图表虽然竖轴坐标都在 0 上,但横轴日期却定格在了迁移服务器的那一天,这明显是不对的。
问题分析
竖轴是订单数、金额、佣金这些,因为没有订单线都在 0 上没什么问题,但统计日期还在迁移服务器上那一天,说明每日统计任务没有执行。
翻看了下定时任务日志,每 3 分钟执行了一次且都执行成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 2026-03-21 10:42:01 Running ['artisan' check:order] .......... 319.90ms DONE ⇂ 'php' 'artisan' check:order > '/dev/null' 2>&1 2026-03-21 10:42:02 Running ['artisan' check:commission] ..... 463.86ms DONE ⇂ 'php' 'artisan' check:commission > '/dev/null' 2>&1 2026-03-21 10:42:02 Running ['artisan' check:ticket] ......... 797.45ms DONE ⇂ 'php' 'artisan' check:ticket > '/dev/null' 2>&1 2026-03-21 10:42:03 Running ['artisan' reset:traffic] ........ 326.40ms DONE ⇂ 'php' 'artisan' reset:traffic > '/dev/null' 2>&1 2026-03-21 10:42:03 Running ['artisan' cleanup:expired-online-status] 321.09ms DONE ⇂ 'php' 'artisan' cleanup:expired-online-status > '/dev/null' 2>&1
---------------------------------------------------------------------------- ★[2026-03-21 10:42:04] Successful ----------------------------------------------------------------------------
|
从日志可知定时任务没问题,但发现不同时间执行的任务条数不一,horizon:snapshot 这条命令就时有时无,但始终未发现 xboard:statistics。
终端路径切换到网站目录下,手动执行统计任务 php artisan xboard:statistics,刷新发现图表就有当日统计了,说明统计功能没问题。去翻了下 app/Console/Kernel.php 源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| protected function schedule(Schedule $schedule): void { Cache::put(CacheKey::get('SCHEDULE_LAST_CHECK_AT', null), time()); $schedule->command('xboard:statistics')->dailyAt('0:10')->onOneServer(); $schedule->command('check:order')->everyMinute()->onOneServer()->withoutOverlapping(5); $schedule->command('check:commission')->everyMinute()->onOneServer()->withoutOverlapping(5); $schedule->command('check:ticket')->everyMinute()->onOneServer()->withoutOverlapping(5); $schedule->command('reset:traffic')->everyMinute()->onOneServer()->withoutOverlapping(10); $schedule->command('reset:log')->daily()->onOneServer(); $schedule->command('send:remindMail', ['--force'])->dailyAt('11:30')->onOneServer(); $schedule->command('horizon:snapshot')->everyFiveMinutes()->onOneServer(); $schedule->command('cleanup:expired-online-status')->everyMinute()->onOneServer()->withoutOverlapping(4);
app(PluginManager::class)->registerPluginSchedules($schedule);
}
|
代码可见 xboard:statistics 写死了在每天 0:10 执行,而新服务器为了节约资源设置了 3分钟 执行一次,这样就永远凑不到那个时间!!
所以,将定时任务执行时间改成每分钟或者 10 的 因数,问题解决。
相关命令
php artisan list:查看支持的全部命令
php artisan schedule:run:执行定时任务
php artisan xboard:statistics:每日统计
php artisan view:clear:清除前端缓存
相关文档
- v2board 面板统计空白,无邮件及 TG 通知问题
- v2board 面板节点在线用户数为 0
本文标题:Xboard 统计任务失效
文章作者:凹凸曼
发布时间:2026-03-21
最后更新:2026-03-21
原始链接:https://sobaigu.com/xboard-statistics-schedule-issue.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。