CronTab для регистрации не работает в Laravel - PullRequest
0 голосов
/ 03 октября 2018

Я тестирую простую команду logger для добавления в crontab.Когда я запускаю php artisan schedule: запустите команду, я могу сначала получить желаемый результат.Но crontab для запуска everyMinute () не работает.

Моя запись Crontab * * * * * cd / Users / bikrambhandari / Мои документы / Проекты Laravel / Миграция / artisan && php artisan schedule:выполните >> / dev / null 2> & 1

Мой код планирования выглядит следующим образом

protected function schedule(Schedule $schedule)
    {
        $schedule->command('visa:expire')
            ->everyMinute();
    }

На данный момент команда php artisan visa: expire codeнапишет строку в лог-файл.Я на Mac.И хочу, чтобы файл журнала записывался каждую минуту.

1 Ответ

0 голосов
/ 03 октября 2018

Предполагая, что с вашим кодом планирования все в порядке, я предполагаю, что ваша задача cron не вызывается должным образом из-за пробелов в пути к каталогу, к которому вы подключаетесь на CD.

Измените строку crontab:

 * * * * * cd "/Users/bikrambhandari/My Documents/Laravel Projects/Migration/artisan" && php artisan schedule:run >> "/Users/bikrambhandari/My Documents/crontab.log.txt" 2>>"/Users/bikrambhandari/My Documents/crontab-error.log.txt"

Кавычки позволят пробелам НЕ выступать в качестве разделителя аргументов, поэтому cd должен завершиться успешно, и тогда php начнет работать.Я изменил перенаправление вывода с /dev/null на файл - здесь вы можете посмотреть, есть ли проблемы у вашей действительной функции schedule.Как только вы узнаете, что все работает, измените перенаправление обратно на /dev/null

Редактировать -

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

IТакже добавьте строку, чтобы просто коснуться файла, чтобы вы знали, что cron действительно работает -

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