Как запускать расписание задач каждую минуту в Laravel? - PullRequest
0 голосов
/ 03 июня 2019

Как я могу запускать задачу по расписанию каждую минуту? Когда я запускаю команду php artisan schedule:run, консоль получает сообщение «Нет запланированных команд, готовых к запуску». Как правильно установить свои задачи? Например, если я использую сольную команду php artisan command:send_info_email_before_event, она работает, но я хочу сделать это с schedule:run при разработке приложения.

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
     $schedule->command('command:send_info_email_before_event')
         ->everyMinute();
}

Ответы [ 2 ]

3 голосов
/ 03 июня 2019

Вы должны настроить это с помощью cron job для запуска каждую минуту. Планирование задач не предназначено для запуска вручную.

В терминале запустить:

crontab -e

Затем добавьте:

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

После сохранения будет запускаться планировщик приложений каждую минуту (без необходимости запуска php artisan schedule:run.

См. Документы для получения дополнительной информации.

0 голосов
/ 03 июня 2019

В Windows вы можете запланировать задачу.

  1. Откройте меню «Пуск» Windows и введите « Запланированные задачи ».Это откроет планировщик заданий.После этого нажмите «Создать задачу» (я бы не предлагал использовать базовую задачу, поскольку она слишком проста для заданий cron).
  2. Откроется окно, в котором можно создать новое «задание Cron» вWindows 10.

    Имя : это простой способ запомнить, что делает эта задача.Вы можете ввести что угодно.

    Описание : просто более подробное описание, чтобы вы могли вспомнить, что это такое.

    Учетная запись пользователя : Iпредложил бы использовать учетную запись с полной привилегией, чтобы ваши задания cron могли создавать и изменять файлы, если это необходимо.Но я бы также предложил использовать учетную запись, предназначенную для заданий Cron, чтобы вы могли отозвать разрешения в любое время, когда вам это необходимо!

    В связи с характером веб-сайта, я обязательно выберу «Выполнитькогда пользователь вошел в систему или нет »и оставьте пароль не хранить (Это может привести к ошибке XML недопустимый, если вы оставите этот флажок непроверенным и требуется пароль)

    И я бы также проверил «Запуск с наивысшими привилегиями»

  3. После этого нажмите « Trigger » и « Добавить новый »

  4. Чтобы запустить задачу «Cron Job», которая запускается более одного раза в день, нажмите Ежедневная задача . Ежедневно повторяйте и повторяйте задание каждую минуту .Не забудьте нажать кнопку включен.После этого нажмите «ОК» и перейдите на вкладку «Действия» и «Создать»…

  5. Установите для программы / сценария значение /path/to/php.exe и аргументы для / path / to / artisan scheduleзапустить.Обязательно используйте "", если у вас есть пробелы в пути.Я бы предложил использовать их в качестве практического правила.

Не забудьте не использовать учетные данные рабочей электронной почты, вы можете использовать что-то вроде https://mailtrap.io, чтобы «перехватить» все отправленныесообщения электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...