2017-02-09 11 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の職人のスケジュールを入力したときに、私はこのエラーを取得しています:

コマンドを実行します。

実行準備が整っているコマンドはありません。

編集:

私は私のスケジューラとコマンドセクションを更新しました。私はコマンドを作成しました。

そして私は

PHPの職人GETのようにそれを使用する場合:データ

その作業を。

しかし、私はスケジューラで試してみると、その1回だけ働いています。

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


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

スケジュールを呼び出そうとする前に、メソッドを「スケジュール」と呼んでタスクを作成しました。 –

+0

Cronは秒で動作しません。あなたの現在のcronコマンドは、時間の0分前と時間の5分前に実行されていると言っています。なぜそれが定期的に起こる必要があるのか​​教えていただけますか? –

+0

@RossWilson私は5秒ごとにWebサービスからデータを取得する必要があります。だから私はそれをやろうとしている。 –

答えて

1

あなたはすべてn個秒を実行するようにスケジュールされたタスクを指定することはできません。システムはcrontabタスクに依存しており、これらのタスクは分単位でスケジューリングできます。このため、n秒(cronメソッドを使用していても)を実行するスケジュールされたタスクを定義することはできません(秒はcronでサポートされていないため)。

関連する問題