2015-10-28 10 views
5

私はConsole/KernalLaravelタスクスケジューラエラーappendOutputTo

protected function schedule(Schedule $schedule) 
{ 
    $schedule->command('queue:work') 
      ->everyMinute() 
      ->appendOutputTo($filePath); 
} 

に次の行を追加した後、CMDプロンプトで私がスケジュールされたタスクを実行するには、次の職人のコマンドを実行しましたが、私はエラー

php artisan schedule:run 

エラーを以下の取得:

[Symfony\Component\Debug\Exception\FatalErrorException] 
Call to undefined method Illuminate\Console\Scheduling\Event::appendOutputTo() 

代わりに->sendOutputTo($filename)を使用した場合もちろん、ファイルを追加するのではなく上書きします。

おかげで、

K

+0

なぜキューを実行するためにタスクスケジューラを使用しているのですか?これにSupervisorを使わないのはなぜですか?あなたの質問について:唯一見つけられたのは、マニュアルhttp://laravel.com/docs/5.1/scheduling#task-outputへのリンクです。注意:emailOutputToおよびsendOutputToメソッドは、メソッドのメソッドと排他的であり、呼び出しのためにサポートされていません。 –

+0

@ThomasSnijderタスクスケジューラを使用したのは、スケジューリングロジックを自分のラーバル自体にサブバージョン化したかったからです。キューを実行するためにタスクスケジューラを使用できない/使用しないと思われる理由は何ですか? – karmendra

+1

キューは通常、メールを送信するなど、すぐに実行する必要のない時間のかかるタスクを処理するためにのみ使用されます。 30秒から60秒の間、簡単にそれを遅らせることができます。タスクは、データベーステーブルのクリーニングなど、一定の瞬間に繰り返される操作に使用されます。スーパーバイザでキューを実行できること、およびタスクスケジューラが不要であることを伝えたいだけです。しかし、あなたがタスクスケジューラでそれをやりたいのであれば、私はそこに何かがあるとは思わない。 –

答えて

2

はい、私は正しかった、appendOutputToは()Laravel 5.1には存在しません。

グッドニュースは、それが

laravel-news-5.2-whats-coming

Laravel 5.2にアップデート利用できるようになります:言及sstarlightとして 10 - 12月 - 2015 、と私は(appendOutputTo機能で検索)再チェックし、はい、それ以前とは異なり、vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.phpに存在します。 laravelさん、ありがとうございますsstarlightさんにお知らせください。

+1

FYI、私はlaravel 5.1でappendOutputToを使用し、それは完全に動作しています。 http://laravel.com/docs/5.1/scheduling#task-outputこちらのドキュメントをご覧ください。 $ filePath>それを定義しますか? – ssuhat

+0

あなたは最新のバージョンのlaravel 5.1にアップデートすることができ、何らかの理由でlaravel 5.2に完全に移動したくない場合は、その機能がそこにあります。 –

+0

あなたは正しいです。これは昨年12月以降です。彼らはv5にパッチを当てた。12月の昨年1月、それは私の更新が意味するものです。 – karmendra