Command schedule in Laravel

2019-01-29 01:48发布

问题:

I'm trying to a execute scheduled command every five minutes in background. I use this code

protected function schedule(Schedule $schedule)
    {

        $schedule->command('read:mail')->cron('*/1 * * * * *')->sendOutputTo(storage_path().'/logs/output.txt')->withoutOverlapping();

    } 

I suppose that this code is fine, when i use php artisan scheduler:run command works, but doesn't work every five minutes in background. ¿Any idea?

回答1:

If you want to use the scheduler you need to add a Cron entry in your server, this line will call the Laravel scheduler every minute and do the tasks.

There is the line you need to add to your Crontab:

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

In case you are using Ubuntu to edit your crontab you can run crontab -e and add the line on the bottom.

You can read more on the official docs about Scheduling.

If you are using Windows you can follow this Stackoverflow question to add a task to the Windows task scheduler.



标签: php laravel-5