2016-12-16 71 views
1

我需要執行一個CronJob來僞造Laravel,但是當我將時間設置爲每天這個任務時,不要在午夜在Forge運行,但是當我將時間設置爲僞造everyMinute,它的作品。如何使用Laravel和Forge執行CronJob

<?php 

namespace App\Console; 

use Illuminate\Console\Scheduling\Schedule; 
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 
use App\Models\User; 

class Kernel extends ConsoleKernel 
{ 

    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) 
    { 
     $schedule->call(function() { 
      $users = User::all(); 

      foreach($users as $user) { 
       if($user->remaining_days == 0 && $user->user_level != 4) 
        $user->user_level = 0; 
       else 
        $user->remaining_days = $user->remaining_days - 1; 

       $user->save(); 
      } 
     })->daily(); 

    } 

    protected function commands() 
    { 
     require base_path('routes/console.php'); 
    } 
} 

回答

1

您可以使用->dailyAt()條款,而不是->daily()

->dailyAt('12:00'); 

如果你想在午夜運行它,我想你也應該檢查服務器的時區,以確保你傳遞正確的時間進入->dailyAt()

+1

謝謝,我認爲錯誤是關於時區。 –