我正在尝试在我的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()
语句中放什么。请帮忙。
答案 0 :(得分:1)
我注意到cron
函数有6颗星。试试->cron('0 0 1 1 * *')
。 yearly
也有相同的表达式,因此您可以尝试使用此command(..)->yearly()->timezone(..)
<强>更新强>
/
中遗漏了usr/bin/php
个问题。 /usr/bin/php
解决了问题