如何在Linux AMI上为Laravel应用程序安排年度cron作业?

时间:2017-01-01 02:53:47

标签: php laravel amazon-web-services amazon-ec2 cron

我正在尝试在我的AWS EC2实例上为ec2-user设置1月1日的cron作业。 当我crontab -u ec2-user -l时,它显示以下输出:

* * * * * usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1

但即使在Kernel.php中设置了以下内容,这项工作也从未解雇过:

protected $commands = [
    // Commands\Inspire::class,
    Commands\TestYearlyJob::class,
];

protected function schedule(Schedule $schedule)
{
    $schedule->command('table:test-yearly-job')->cron('0 0 1 1 *')
       ->timezone('Europe/London')
       ->appendOutputTo('../taskscheduler.log');
}

命令本身从Artisan运行(我已经仔细检查过),所以它的逻辑很好。

我想知道是否有办法使用->yearly()->at()日程安排选项吗?或者可能进行closure真值测试?但是我不确定在when()语句中放什么。请帮忙。

1 个答案:

答案 0 :(得分:1)

Reference

我注意到cron函数有6颗星。试试->cron('0 0 1 1 * *')yearly也有相同的表达式,因此您可以尝试使用此command(..)->yearly()->timezone(..)

<强>更新

/中遗漏了usr/bin/php个问题。 /usr/bin/php解决了问题