Я использую larave 5.1 с php5, я пытаюсь создать свое задание cron для удаления неоплаченного счета во времени, которое я хочу, но я тестирую его, чтобы распечатать пользовательский лог, чтобы помочь мне узнать, что работа работает.
Это мое приложение / Консоль / Kernel.php
protected $commands = [ \App\Console\Commands\Inspire::class, \App\Console\Commands\RemoveUnpaidInvoice::class, ]; protected function schedule(Schedule $schedule) { $schedule->command('removeUnpaidInvoice')->everyMinute(); // $schedule->command('inspire')->hourly(); }
И это мой класс RemoveUnpaidInvoice:
public function handle() { UserLog::create([ 'user_id' => '3', 'title' => 'Cron Testing', 'log' => 'Time : ' . date('H:i:s') ]); }
После того, как мои файлы были выполнены, я запустил эту команду на моем терминале, чтобы запустить мой cron:
php artisan schedule:run
После того, как я запустил команду schedule artisan, мой терминал покажет это сообщение:
Running scheduled command: '/usr/bin/php5' 'artisan' removeUnpaidInvoice > '/dev/null' 2>&1 &
Я думаю, что это работа, тогда я проверяю свою базу данных, чтобы посмотреть, что пользовательский журнал создан или нет, и он создан, пользовательский журнал добавляется через cron.
Но проблема в том, что я жду одну минуту, и пользовательский логин не добавлен, подождите 2 минуты, 3 минуты и более, нет другого пользовательского логина, добавленного в мою базу данных?
Как это исправить? я сделал ошибку?
Начальный диспетчер
Вот единственная запись Cron, которую вы должны добавить на свой сервер:
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
Этот Cron будет вызывать планировщик команд Laravel каждую минуту. Затем> Laravel оценивает запланированные задачи и выполняет выполняемые задачи.
Вам нужно запустить cron, не запускать php artisan schedule:run
в консоли.