Laravel“没有计划的命令准备好运行。”

新手上路,请多包涵

我在 App\Console\Kernel 上设置了以下 Laravel 命令:

 protected function schedule(Schedule $schedule) {
    $schedule->command('command:daily-reset')->daily();
    $schedule->command('command:monthly-reset')->monthly();
}

然后,在我的服务器上,我设置了一个每天运行一次的 cron 作业(在 00:00)。

 0 0 * * * php /home/privates/public_html/staging/current/artisan schedule:run

我的 cron 作业每晚都成功运行,但日志只是说:“没有计划的命令准备好运行。”

我究竟做错了什么?我希望我的 daily 命令每晚运行。

谢谢!

原文由 user1832945 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 679
2 个回答

您是否尝试手动运行命令?

运行 php artisan 并查看您的命令是否已注册。

如果你已经注册了你的命令,你应该在可用的 artisan 命令列表下看到 command:daily-resetcommand:monthly-reset

如果您没有看到它们,请继续注册您的命令,方法是将其添加到 commands 属性中可用的 app/Console/Kernel.php

 protected $commands = [
    'App\Console\Commands\YourFirstCommand',
    'App\Console\Commands\YourSecondCommand'
];

将 crontab 条目更改为

* * * * * php /home/privates/public_html/staging/current/artisan schedule:run

原文由 chanafdo 发布,翻译遵循 CC BY-SA 4.0 许可协议

我已经尝试了一切,但最终我找到了解决这个问题的方法。在命令中添加时间戳。下面是一个例子。

      $schedule->call(function(){
         print("HELLO");
     })->dailyAt('21:51')->timezone('Asia/Kolkata');

或者

$schedule->command('tenam:before')
        ->dailyAt('22:28')->timezone('Asia/Kolkata');

原文由 Rahul Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题