2015-10-28 16 views
5

Dodałem następujący wiersz w Console/Kernallaravel Task Scheduler Błąd appendOutputTo

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

Następnie w cmd wierszu Pobiegłem następujące polecenie rzemieślnik, aby uruchomić zaplanowane zadania, ale pojawia się następujący błąd

php artisan schedule:run 

Error:

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

Gdzie wtedy, gdy używam ->sendOutputTo($filename) zamiast tego działa dobrze, oczywiście, że nie dołącza, ale zastępuje plik.

Dzięki

K

+0

Czy mogę zapytać, dlaczego używasz Harmonogramu zadań do uruchomienia kolejki? Dlaczego nie skorzystać z tego w Supervisor? Jeśli chodzi o twoje pytanie: jedyne co mogłem znaleźć to link do podręcznika http://laravel.com/docs/5.1/scheduling#task-output. W notatce wymieniono następujące informacje: Uwaga: Metody emailOutputTo i sendOutputTo są dostępne wyłącznie dla metody komendy i nie są obsługiwane w przypadku wywołania. –

+0

@ThomasSnijder Myślę, że użyłem harmonogramu zadań, ponieważ chciałem logiki szeregowania pod-wersji w mojej samej laravel. Jak myślisz, dlaczego nie możemy/nie powinniśmy używać harmonogramu zadań do uruchamiania kolejki? – karmendra

+1

Kolejki są zwykle używane do obsługi czasochłonnego zadania, które nie musi być wykonywane od razu, na przykład wysyłania wiadomości e-mail. Możesz z łatwością opóźnić to na 30 do 60 sekund. Zadanie jest używane do powtarzających się operacji w określonym momencie, takich jak czyszczenie tabeli bazy danych lub coś innego. Chcę ci tylko powiedzieć, że możesz uruchomić kolejki z Supervisor i nie potrzebujesz do tego zadań Task scheduler. Ale jeśli chcesz to zrobić za pomocą Harmonogramu zadań, nie sądzę, że istnieją jakiekolwiek remisy. –

Odpowiedz

2

Tak, miałem rację, appendOutputTo() nie jest obecny w laravel 5.1.

Dobra wiadomość jest taka, będzie ona dostępna w laravel 5,2

laravel-news-5.2-whats-coming

Aktualizacja: 10-Dec-2015 jak sstarlight wspomniał, a ja ponownie sprawdzić (szukał funkcji appendOutputTo) i tak go jest teraz obecny w vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php, inaczej niż wcześniej. Dzięki laravel i dzięki sstarlight daj nam znać.

+1

FYI, używam appendOutputTo w laravel 5.1 i działa idealnie. http://laravel.com/docs/5.1/scheduling#task-output zobacz dokumentację. $ filePath> czy to definiujesz? – ssuhat

+0

można zaktualizować do najnowszej wersji laravel 5.1, a funkcja będzie dostępna, jeśli nie chcesz przenieść całkowicie do wersji 5.2a z jakichkolwiek powodów. –

+0

Masz rację, a to od grudnia ubiegłego roku. Naprawili v5.1 w zeszłym roku w grudniu, to właśnie oznaczała moja aktualizacja. – karmendra

Powiązane problemy