Я пытаюсь выполнить запланированную команду каждые пять минут в фоновом режиме. Я использую этот код
protected function schedule(Schedule $schedule) { $schedule->command('read:mail')->cron('*/1 * * * * *')->sendOutputTo(storage_path().'/logs/output.txt')->withoutOverlapping(); }
Я полагаю, что этот код в порядке, когда я использую php artisan scheduler:run
команда php artisan scheduler:run
работает, но не работает каждые пять минут в фоновом режиме. Есть идеи?
Если вы хотите использовать планировщик, вам нужно добавить запись Cron на своем сервере, эта строка будет вызывать планировщик Laravel каждую минуту и выполнять задачи.
Существует строка, которую вы должны добавить в свой Crontab:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Если вы используете Ubuntu для редактирования своего crontab, вы можете запустить crontab -e
и добавить строку внизу.
Вы можете больше узнать о официальных документах о планировании .
Если вы используете Windows, вы можете выполнить этот вопрос Stackoverflow, чтобы добавить задачу в планировщик задач Windows.