【问题标题】:Laravel not running Cronjob on Ubuntu NGINXLaravel 没有在 Ubuntu NGINX 上运行 Cronjob
【发布时间】:2018-02-05 01:44:20
【问题描述】:

我已经设置了以下 Laravel Cronjob 命令:

protected function schedule(Schedule $schedule)
{
    $schedule->command('DataDownloader:downloaddata')->dailyAt('19:34');
}

这会将 API 中的一些数据保存到 mySQL 数据库中。该命令列在php artisan 下,我可以使用php artisan DataDownloader:downloaddata 运行它。

根据 Laravel 文档,我已将 Cron 条目添加到我的 crontab

* * * * * php /var/www/html/myprojectname/artisan schedule:run >> /dev/null 2>&1

当我运行php artisan schedule:run 时,它告诉我“没有计划的命令准备好运行”。我真的不知道这是否表明我的 Cronjob 根本不起作用或者它只是坏了。

是我遗漏了什么还是我做错了什么导致 Cron 无法运行?

我的服务器正在运行带有 NGINX 的 Ubuntu。

【问题讨论】:

  • 哪个用户在 crontab 中“添加了 cron 条目”?你可能想看看stackoverflow.com/a/8476992/1564365
  • @Kyslik 我首先尝试使用usermod -aG 添加的用户,然后使用root 帐户。

标签: php mysql laravel nginx cron


【解决方案1】:

schedule:run 命令会触发其他在执行时准备好运行的命令。所以这意味着在你运行它的确切时间,没有命令被启动。

但是,您已经定义了每分钟运行schedule:run 的 cron,因此当 19:34 到来时,您的命令将被执行。

【讨论】:

  • 我想这是合乎逻辑的 - 但有什么方法可以知道这些命令会运行还是我只需要等待它们发生?
  • 遗憾的是,到目前为止,除了等待之外,我不知道任何此类内置可能性。
  • 我会看看 Cron 是否有效,然后向您报告。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多