#php #laravel
#php #laravel
Вопрос:
Я создал эту функцию, но она работает только один раз, когда я выполняю эту команду:
php artisan schedule: run
Должен ли я что-то делать, чтобы продолжить автоматически? запускается ли оно автоматически, когда вы заходите на сайт только один раз и запускаете его самостоятельно?
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
$dias1 = CarbonCarbon::today()->subDays(5);
$dias2 = CarbonCarbon::today()->subDays(15);
$encomendasnaopagas = encomendas::where('estado', 1)->where('updated_at', '<', $dias1)
->join('distritos', 'encomendas.distrito', '=', 'distritos.id')
->update(['estado' => 5]);
$encomendasenviadas = encomendas::where('estado', 3)->where('updated_at', '<', $dias2)
->join('distritos', 'encomendas.distrito', '=', 'distritos.id')
->update(['estado' => 4]);
})->everyMinute();
}
Комментарии:
1. Добро пожаловать в SO… laravel.com/docs/7.x/scheduling#introduction «Запуск планировщика»
2. Я видел документацию и до сих пор не понимаю, почему..
3. не понимаю, почему что? какую часть вы не понимаете? он сообщает вам, как заставить его выполняться каждую минуту… возможно, вы не знаете, что такое cron? или как добавить задание cron? нужно знать, чего вы не понимаете, чтобы прояснить это
Ответ №1:
Возможно, это то, что вы пропустили в документации по поддержанию работы планировщика
https://laravel.com/docs/8.x/scheduling#defining-schedules
При использовании планировщика вам нужно только добавить следующую запись Cron на ваш сервер. Если вы не знаете, как добавить записи Cron на свой сервер, рассмотрите возможность использования такой службы, как Laravel Forge, которая может управлять записями Cron для вас:
* * * * * cd /path-to-your-project amp;amp; php artisan schedule:run >> /dev/null 2>amp;1
Этот Cron будет вызывать планировщик команд Laravel каждую минуту. Когда выполняется команда schedule:run, Laravel оценит ваши запланированные задачи и выполнит задачи, которые должны быть выполнены.
Вам нужно будет настроить запись в вашей crontab
или аналогичной системе управления cron.