Запуск планировщика с использованием метода cron в Laravel

#laravel #cron #scheduler

#laravel #cron #планировщик

Вопрос:

У меня есть expires_at столбец в одной из моих моделей, и я хочу запустить планировщик на основе метки времени этого.

Я попробовал следующий код :

 $collection = Foo::first();
$schedule->call( function() {
    // Do Something
})->cron( CarbonCarbon::parse( $collection->expires_at )->format( 'i h d m' ) . ' *' );
  

Но когда я запускаю php artisan schedule:run по истечении срока действия, я получаю No scheduled commands are ready to run.

Ответ №1:

Вместо вызова функции вы можете сделать это с помощью команды. Создайте команду для этого задания cron и затем вы можете указать, что schdeuler в schedule методе kernel.php

 schedule->command('command Name')
        ->cron( CarbonCarbon::parse( $collection->expires_at )->format( 'i h d m' ) . ' *' );
  

Надеюсь, это поможет 🙂