2016-12-19 3 views
0

Ich mache einen Cron in Laravel mit Schedule, aber das Datum der Parameter für die Ausführung des Cron sind nicht festgelegt. Ich habe eine Tabelle, die die Daten speichert, mit denen ich sie später als Parameter für die Cron-Ausführung verwenden werde. Das Problem ist, dass ich nicht weiß, wie ich vom Controller zum Zeitpunkt des Schreibens in einen Datensatz diesen Datensatz an die Abfrage senden kann, die ich im Kernel für Cron habe.Wie senden Parameter an die Kernel-Zeitplan-Funktion in Laravel?

Hier ist die Funktion, die im Kernel ist:

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

$schedule->call(function() { 

    $programacion = 
    DB::table('plantrabajoalerta') 
    ->select(DB::raw('tareaFechaInicioPlanTrabajoAlerta, tareaHoraPlanTrabajoAlerta, tareaIntervaloPlanTrabajoAlerta, tareaDiaLaboralPlanTrabajoAlerta, tareaDiasPlanTrabajoAlerta, tareaMesesPlanTrabajoAlerta')) 
    ->where('idPlanTrabajoAlerta',"=", $id) 
    ->get(); 

    $schedule->command('log:plantrabajo')->cron('minuto hora dia * * *'); 

}); 

} 

Antwort

0

Sie nichts über Anruf an Ihrem Cron-Job schicken. Aber Sie können diesen Code in Ihrem log:plantrabajo Konsolenbefehl ausführen, richtig?

So haben Sie gerade zu

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

    $schedule->command('log:plantrabajo')->hourly(); 
} 

Und auf der Konsole Befehl ausführen, die Abfrage:

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 

class PlanTrabajoCommand extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'log:plantrabajo'; 

    /** 
    * The console command description. 
    * 
    * @var string 
    */ 
    protected $description = 'Do whatever'; 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() 
    { 
     $programacion = 
      DB::table('plantrabajoalerta') 
       ->select(DB::raw('tareaFechaInicioPlanTrabajoAlerta, tareaHoraPlanTrabajoAlerta, tareaIntervaloPlanTrabajoAlerta, tareaDiaLaboralPlanTrabajoAlerta, tareaDiasPlanTrabajoAlerta, tareaMesesPlanTrabajoAlerta')) 
       ->where('idPlanTrabajoAlerta',"=", $id) 
       ->get(); 

     foreach($programacion as $evento) { 
      ... 
     } 
    } 
} 
Verwandte Themen