Laravel CRON的工作不适用于aws

时间:2018-03-16 09:48:27

标签: php laravel amazon-ec2 cron laravel-5.4

我在AWS Ubuntu 16.04 apache2中部署了laravel 5.4应用程序,我创建了用于发送电子邮件dailyAt('10:00')的任务计划程序。

当我手动运行artisan命令php artisan email:reminder时,每件事情都可以。

但是当我运行php artisan schedule:run时,我正在No scheduled commands are ready to run.

我还参考了文档* * * * * php /var/www/html/app/artisan schedule:run >> /dev/null 2>&1

这是Kernal.php

class Kernel extends ConsoleKernel
{
    protected $commands = [
        \App\Console\Commands\EmailReminder::class,
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('email:reminder --force')->dailyAt('10:00');
    }

    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

2 个答案:

答案 0 :(得分:1)

只有在10:00致电

时,您的日程安排才有效

添加此cronjob

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

Laravel将每分钟调用此函数,一旦它是10:00,它将相应地调用该函数。 检查https://laravel.com/docs/5.5/scheduling#introduction,搜索“启动计划程序”

答案 1 :(得分:1)

在AWS ECS中,我们可以在不将cron添加到容器的情况下使用

https://github.com/spatie/laravel-cronless-schedule

php artisan schedule:run-cronless