пытаюсь понять как работает планировщик задач в Laravel. Для примера пытаюсь сделать что бы каждую минуту отправляло письмо на почту опишу что и как я сделал, если кто подскажет в чем ошибка буду признательный итак через консоль создал App\Console\Commands\bitcoinTest в нем PHP: protected $signature = 'bitcoin:sendEmail'; PHP: public function handle() { // // $provider = $this->argument('provider'); $to = 'еее@gmail.com'; $subject = 'test mail'; $message = mail($to,$subject, 'test message from laravel'); if($message){ $flag = true; echo 'mail go'; }else { $flag = false; echo 'mail NOT go'; } return $flag; } В файле App\Console\Kernel.php PHP: protected $commands = [ // 'App\Console\Commands\bitcoinTest' ]; и PHP: protected function schedule(Schedule $schedule) { $schedule->command('bitcoin:sendEmail') ->everyMinute(); } через консоль запускаю php artisan bitcoin:sendEmail - письмо уходит (локально) ДАЛЬШЕ ДЕЛАЮ НАУГАД ТАК КАК НЕ ЗНАЮ КАК ПРАВИЛЬНО =) дальше что бы запустить планировщик в консоли php artisan schedule:run - письмо приходит но только одни раз сразу через минуту ничего не происходит в чем может быть моя ошибка?
В том, что документацию не читаешь. Я тебе писал в личке, команду php artisan schedule:run надо таки поставить на крон, а вот остальные команды приложения, которые должны выполняться по расписанию, уже не надо - Laravel при каждом запуске этой команды будет проверять, подошло ли для них время и запускать. https://laravel.com/docs/master/scheduling, раздел "Starting The Scheduler":
я то думал, как в cms реализован это планировщик. Думал, что API есть у крона, к которому можно обратиться из php, а оно оказывается вон как. Крон дрючит твою сиэмэску или движок, а тот подключает нужные скрипты. ппц, как всё просто оказалось.
В разных по-разному. У WP например задачи встроенного планировщика запускаются при заходе посетителей на сайт. Но, ИМХО, это бред, поэтому я никогда им не пользуюсь
я ее вдоль и поперек перечитал на двух языках написано что "вам нужно добавить следующую запись Cron на свой сервер". Я не понимаю значение этой фразы ))) Дальше написано (как раз для таких как я) - "если вы не знаете как добавить cron на сервер используйте сервис laravel forge" это какая то платная пое***ина. То есть на винде нет не какой возможности сделать планировщик laravel без гемора и сторонних сервисов? такого быть не может. В этом собственно и состоит мой вопрос
На винде есть свой планировщик, надо добавить в него. Но Laravel тоже больше на Linux рассчитан, как и PHP и всё остальное --- Добавлено --- Ну что такое cron знаешь? Он берёт команды из crontab, вот в эту crontab нужно добавить такую запись. --- Добавлено --- Хотя, я бы не стал в Windows рабочей машины добавлять ежеминутный опрос стороннего сервера.
То есть, чтоб понятно было, на windows можно вот эту команду: Код (Text): php /path-to-your-project/artisan schedule:run повесить на этот планировщик, а потом пользоваться как написано в доке.
в том, что господней волей он сам по себе не запускается единственный её смысл в том, что нужно дёргать это дело переодически можешь запускать это руками для проверки, работает ли или можешь сделать батник с вечным циклом и слипом на минуту - будет тебе вполне такой крон на время разработки добавлять прям это в реальный шедулер просто для разработки я смысла не вижу.
На винде есть cygwin который успешно эмулирует *nix окружение, в т.ч. cron. Ну а на Win10 вроде встроенная поддержка линукса, но я не пробовал.