duanlan2003 2016-12-31 18:53
浏览 56
已采纳

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

I'm trying to set up a cron job for the 1st of January on my AWS EC2 instance for ec2-user. When I do crontab -u ec2-user -l, it shows the following output:

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

But even though the following was set up in Kernel.php, the job never fired:

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');
}

The command itself runs from Artisan (I've double checked), so its logic is fine.

I'm wondering if there is a way to do it with the ->yearly()->at() scheduling option? Or perhaps with a closure truth test? But I'm not sure what to put in there for a when() statement. Please help.

  • 写回答

1条回答 默认 最新

  • doudongfu8006 2016-12-31 19:33
    关注

    Reference

    I noticed cron function has 6 stars. Try ->cron('0 0 1 1 * *'). Also yearly has the same expression, so you can try either this command(..)->yearly()->timezone(..)

    Update

    The issue is missing / in usr/bin/php. /usr/bin/php fixed the issue

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部