2017-09-22 13 views
0

私はLaravel 5.3.26を使用しています。私はcronジョブを準備していますが、スケジューラーを自動的に実行するように設定することはできません。以下は Laravel 5.3スケジューラーが自動的に実行されない

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use DB; 

class ligmena extends Command { 

    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'ligmena:update'; 

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

    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() { 
     // 
     $today = strtotime("now"); 
     $energa_symvolaia = DB::table('symvolaia')->where('eidos_kinisis', '1')->get(); 
     foreach ($energa_symvolaia as $es) { 
      $imerominia_lixis = strtotime(str_replace("/", "-", $es->imerominia_lixis)); 
      if ($today > $imerominia_lixis) 
       DB::table('symvolaia')->where('id', '<', $es->id)->update(['eidos_kinisis' => '4']); 
     } 
    } 

} 
?> 

私はcronジョブのようにセットアップをしました Kernel.php

<?php 

namespace App\Console; 

use DB; 
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\ligmena::class, 
      // 
    ]; 

    /** 
    * Define the application's command schedule. 
    * 
    * @param \Illuminate\Console\Scheduling\Schedule $schedule 
    * @return void 
    */ 
    protected function schedule(Schedule $schedule) { 
     // $schedule->command('inspire') 
     //   ->hourly(); 

     $schedule->command('ligmena:update')->everyMinute(); 
    } 

    /** 
    * Register the Closure based commands for the application. 
    * 
    * @return void 
    */ 
    protected function commands() { 
     require base_path('routes/console.php'); 
    } 

} 
?> 

のコードです:

私は新しいコマンド ligmena:updateを作成しました「

は、以下のコードであります

php /home/site.com/public_html/testdemo/artisan schedule:run >> /dev/null 2>&1

e。

コマンドを手動で実行すると問題なく動作します。

提案がありますか?

+0

cronjobファイルに行全体を投稿してください。 – OptimusCrime

+0

* * * * * * php /home/site.com/public_html/testdemo/artisanスケジュール:実行>>/dev/null 2>&1 – dip

+0

そして、コマンド 'php /home/site.com/public_html/ testdemo /職人のスケジュール:実行する 'それは実行されますか?ドキュメントと比較して見た目が正しい。 – OptimusCrime

答えて

0

raw mysqlを使用して問題を解決しました。 cronジョブは正常に動作していましたが、コードは正常でしたが、DBを変更していませんでした。 raw mysqlに変更した後、正常に動作しました

関連する問題