【问题标题】:Laravel Cron Job not running over ubuntu serverLaravel Cron 作业未在 ubuntu 服务器上运行
【发布时间】:2021-11-07 11:46:44
【问题描述】:

我有一个使用 Nginx 在 Ubuntu 服务器上设置的 laravel 应用程序。在这里,我有 cron 工作。我遇到了一个问题,服务器没有自动获取作业文件的更改。所以我用谷歌搜索了这些东西,并从我运行的 article 中找到了一个命令;

 php artisan queue:restart

自从我运行了这个命令,现在甚至没有工作在运行。我也在尝试使用简单的 HeartbeatJob 来记录信息,但它也不起作用。当我做php artisan schedule:run时, 没有错误,特别是屏幕输出为:

[2021-09-11T08:41:32+00:00] Running scheduled command: App\Jobs\Heartbeat

但是什么也没发生。知道这个队列命令做错了什么以及我如何让我的工作再次工作吗?

【问题讨论】:

  • 你能发布你的 cron 任务吗?

标签: laravel ubuntu cron jobs


【解决方案1】:

您的 cron 作业将需要 artisan 的绝对路径,因此应如下所示:

php /home/user/site.com/artisan queue:restart

您可能还需要指定队列:

php /home/user/site.com/artisan queue:restart --queue=nameofqueue

【讨论】:

  • 我不认为php artisan queue:restart 在 cron 工作中。 OP 通过 CLI 运行它以重新启动队列
  • @brombeer 你能进一步解释一下吗?
  • 意思是您可能在终端中运行php artisan queue:restart不是作为cronjob。
  • @brombeer - 是的,但是他确实提到他正在使用 cron 作业,所以这可能至少是问题的一部分。在任何情况下从 CLI 重新启动时指定队列名称,如果它不是“默认”,我认为是必需的。
  • @GilesBennett 问题是;即使我执行 PHP artisan schedule:run 也没有执行任何操作
最近更新 更多