【发布时间】:2019-03-05 15:16:54
【问题描述】:
Laravel 5.5 PHP 7.1
我在生产服务器上遇到了一个奇怪的问题,它延迟了调度程序,因此任务没有按时触发。似乎由于某种原因,命令artisan schedule:run 有时需要一些时间来加载。如果我从控制台运行artisan schedule:run,它会立即运行,问题是何时使用 cron 作业触发。为了看得更清楚,我已将 cron 设置为 5 分钟而不是所有分钟。
Cron 日志:
Sep 29 10:05:01 localhost CROND[17311]
Sep 29 10:10:01 localhost CROND[17846]
Sep 29 10:15:01 localhost CROND[18165]
调度器日志:
Received ping at Saturday, 29-Sep-2018 10:06:11 EDT
Received ping at Saturday, 29-Sep-2018 10:10:01 EDT
Received ping at Saturday, 29-Sep-2018 10:18:55 EDT
调度程序的唯一任务是测量时间的简单闭包,没有复杂的任务。
$schedule->call(function () {
return true;
})
->everyMinute()
->pingBefore('...')
有人告诉我这可能是服务器负载问题或时钟同步,运行 uptime; sar -q; etc 后结果为 10:52:05 up 4:29, 1 user, load average: 0,02, 0,04, 0,05 并且时钟同步。
真正的问题是,如果我有一个任务设置为例如在 10:05 运行,它永远不会运行,因为调度程序是在 10:06 加载的。
有什么想法吗?
更新结果:----------------
我发现,如果我在“挂断”期间执行任何工匠命令,则需要很长时间。假设您在 16:24 运行任何工匠命令,此命令直到 16:27:31 才解决(当系统“锁定”时)
我没有更多的想法...查看了日志和所有内容,但没有任何线索。我认为不是 Laravel,可能是服务器问题。服务器负载真的很小,是一个拥有 15 个用户的私有应用程序的小滴。 Mysql查询不慢(我已经激活了慢查询日志)
Cron 日志:
Sep 30 16:20:01 localhost CROND[28616]
Sep 30 16:21:01 localhost CROND[854]
Sep 30 16:22:02 localhost CROND[988]
Sep 30 16:23:01 localhost CROND[1062]
Sep 30 16:24:01 localhost CROND[1132]
Sep 30 16:25:01 localhost CROND[1199]
Sep 30 16:26:01 localhost CROND[1255]
Sep 30 16:27:01 localhost CROND[1315]
Sep 30 16:28:01 localhost CROND[1411]
Sep 30 16:29:01 localhost CROND[1508]
Sep 30 16:30:01 localhost CROND[1599]
Sep 30 16:31:01 localhost CROND[1670]
Sep 30 16:32:01 localhost CROND[1742]
Sep 30 16:33:01 localhost CROND[1807]
Sep 30 16:34:01 localhost CROND[1874]
Sep 30 16:35:01 localhost CROND[1936]
Sep 30 16:36:01 localhost CROND[1995]
Sep 30 16:37:01 localhost CROND[2062]
调度器日志:
[2018-09-30 16:20:12] production.INFO: schedule call
[2018-09-30 16:21:01] production.INFO: schedule call
[2018-09-30 16:22:02] production.INFO: schedule call
[2018-09-30 16:23:01] production.INFO: schedule call
[2018-09-30 16:27:31] production.INFO: schedule call
[2018-09-30 16:27:31] production.INFO: schedule call
[2018-09-30 16:27:31] production.INFO: schedule call
[2018-09-30 16:27:31] production.INFO: schedule call
[2018-09-30 16:28:01] production.INFO: schedule call
[2018-09-30 16:29:01] production.INFO: schedule call
[2018-09-30 16:30:01] production.INFO: schedule call
[2018-09-30 16:31:01] production.INFO: schedule call
[2018-09-30 16:32:02] production.INFO: schedule call
[2018-09-30 16:33:01] production.INFO: schedule call
[2018-09-30 16:37:53] production.INFO: schedule call
[2018-09-30 16:37:53] production.INFO: schedule call
[2018-09-30 16:37:53] production.INFO: schedule call
[2018-09-30 16:37:53] production.INFO: schedule call
【问题讨论】:
标签: php laravel cron scheduled-tasks