2016-10-28 2 views
0

Ich habe eine Laravel Aufgabe erstellen und zu meiner crontabkonfigurieren Laravel Aufgabenplanung mit Crontab


app/Console/Kernel.php

<?php 

namespace App\Console; 

use Carbon; 

use Illuminate\Console\Scheduling\Schedule; 
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 

class Kernel extends ConsoleKernel 
{ 
    /** 
    * The Artisan commands provided by your application. 
    * 
    * @var array 
    */ 
    protected $commands = [ 
     \App\Console\Commands\Inspire::class, 
    ]; 

    /** 
    * Define the application's command schedule. 
    * 
    * @param \Illuminate\Console\Scheduling\Schedule $schedule 
    * @return void 
    */ 
    protected function schedule(Schedule $schedule) 
    { 
     $now = Carbon\Carbon::now('America/New_York'); 
     $dt = Carbon\Carbon::parse($now); 
     $time_start = $dt->toTimeString(); 
     $dt = str_replace('-','_',$dt); 
     $dt = str_replace(' ','_',$dt); 
     $dt = str_replace('/',':',$dt); 
     $schedule->exec('curl '.env('APP_URL').'fbwifi/acl_update')->everyMinute() 
      ->sendOutputTo(public_path().'/tasks/log_'.$dt.'.txt'); 
    } 
} 

crontab Datei

*  *  *  *  *  /usr/local/bin/php artisan schedule:run 
*  *  *  *  *  php artisan schedule:run 

Ergebnis

Aus irgendwelchen Gründen meine crontab nicht auslösen.

Nach 5 Minuten sehe ich nichts in meinem public/tasks/ Ordner generiert.

Ich habe sogar versucht, den vollständigen Pfad zu meinem php.

Fehle ich etwas?

Wie würde man gehen und debuggen?


Ich bin offen für alle Vorschläge in diesem Moment.

Alle Hinweise/Vorschläge/hilft auf diesem werden sehr geschätzt!

+0

In Ihrer Crontab müssen Sie den vollständigen Pfad für Handwerker Befehl verwenden. 'php/Pfad/zu/Ihrem/Projekt/Handwerker Zeitplan: run' – zorx

+0

Wie wäre es mit PHP? Das ist nicht nötig ? – ihue

+0

Ich denke, dass '/ usr/local/bin /' bereits in Ihrem 'PATH' ist, also keine Notwendigkeit – zorx

Antwort

1

In Ihrer Crontab müssen Sie den Pfad festlegen, der auf die Artisan-Datei im Stammverzeichnis Ihres Projekts verweist.

* * * * * php /path/to/project/artisan schedule:run

Wenn Sie Probleme haben, den absoluten Pfad zu Ihrem Projekt Route dann offen Terminal, cd in Ihr Projekt Route Verzeichnis und verwenden Sie dann den Befehl pwd zu finden, mit dem Sie die absolute Verzeichnis geben.

So zum Beispiel:

$ cd MyUser/dev/project 
$ pwd 

Will Ausgabe etwas wie

Dann würde dein cronjob wie

aussehen

* * * * * php /Users/MyUser/dev/project/artisan schedule:run

finden Sie Ihre Cron-Daemon neu zu starten. Ich habe herausgefunden, dass das manchmal hilft, wenn die Dinge nicht für mich laufen.