我在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');
}
}
答案 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