2017-02-09 2 views
0

Я пытаюсь выполнить запланированную задачу каждые 5 секунд.Laravel 5 Задача расписания не работает

Это мой код.

*/ 
    protected function schedule(Schedule $schedule) 
    { 
     // $schedule->command('inspire') 
     //   ->hourly(); 

     $schedule->call('App\Http\Controllers\[email protected]')->cron('0,5 * * * *'); 


    } 

    /** 
    * Register the Closure based commands for the application. 
    * 
    * @return void 
    */ 
    protected function commands() 
    { 
     require base_path('routes/console.php'); 
    } 

И я получаю эту ошибку, когда я вхожу

график PHP мастеровые: запустить

команды.

Плановые команды не готовы к запуску.

Edit:

Я обновил свой планировщик и командный раздел. Я создал команду.

И когда я использую его как

PHP ремесленник ПОЛУЧАЕТ: данные

его работа.

Но когда я пробую его с планировщиком, он просто работает 1 раз.

protected $commands = [ 
     \App\Console\Commands\GetData::class, 
    ]; 


$schedule->command('get:data')->cron('* * * * *'); 
+0

Вы вызвали метод «расписание», чтобы создать задачу, прежде чем пытаться вызвать расписание: запустите? –

+0

Cron не работает с секундами. Ваша текущая команда cron говорит, что бежит в 0 минутах минута часа и 5 минут за час. Можете ли вы рассказать нам, почему вам нужно, чтобы это случалось так регулярно? –

+0

@RossWilson Мне нужно получить данные из веб-службы каждые 5 секунд. Поэтому я пытаюсь это сделать. –

ответ

1

Вы не можете указать запланированное задание для запуска каждые п секунд. Система полагается на задачу crontab, и они могут быть запланированы только на минуту, а не на меньшую единицу. Вот почему невозможно определить запланированную задачу для запуска каждые n секунд, даже с помощью метода cron (поскольку секунды не поддерживаются cron).

Смежные вопросы