在Laravel中安排工作

问题描述 投票:0回答:4

我在laravel“update:date”中创建了一个命令,“php artisan list”成功列出了它。我可以使用“php artisan update:date”执行它

Kernel.php:

    protected $commands = [
    'Snuba\Console\Commands\Inspire',
    'Snuba\Console\Commands\UpdateDate'
   ];


protected function schedule(Schedule $schedule)
{
    $schedule->command('inspire')
             ->hourly();

    $schedule->command('update:date')
        ->everyMinute();

}

我将其配置为按照上面给出的每分钟运行。我还需要配置其他什么吗?我认为laravel应该在ubuntu服务器上自动将其注册为cron任务。

php laravel laravel-5
4个回答
0
投票

我认为laravel应该在ubuntu服务器上自动将其注册为cron任务。

不,你必须像以下一样开始:

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

启动计划程序

使用调度程序时,只需将以下Cron条目添加到服务器即可。如果您不知道如何将Cron条目添加到服务器,请考虑使用Laravel Forge等可以为您管理Cron条目的服务

Reference

Another Answer


0
投票

我刚注意到:

Call to undefined method Illuminate\Console\Scheduling\Event::everyMinute()

我按照文档并认为这是一个有效的方法调用。我发现everyMinute()在laravel 5+中不再有效。所以,我使用了cron表达式。


0
投票

Laravel命令调度程序允许您在Laravel本身内流畅而有表现地定义命令调度。有关更多信息,请访问以下链接qazxsw poi


0
投票

如果您有权访问SSH运行命令crontab -e,请插入以下行:

  • php / path-to-your-project / artisan schedule:run >> / dev / null 2>&1

它将按指定的时间运行所有指定的crons。

如果你有cpanel,那么在crontab下添加上面的命令行

© www.soinside.com 2019 - 2024. All rights reserved.