2017-01-10 4 views
-1

私は窓を使用しています。私のcronジョブlaravel 5.3がlocalhostで動作しないのはなぜですか?

\app\Console\Kernel.php上の私のコードは次のようである:私は私のcronを見つけた後、私のcronジョブ

を見るためにphp artisan listを実行

<?php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use DB; 

class CustomCommand extends Command 
{ 
    protected $signature = 'custom:command'; 

    protected $description = 'test cron job to update status on table order'; 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function handle() 
    { 
     $id = 1; 
     DB::table('orders') 
      ->where('id', $id) 
      ->update(['status' => 2, 'canceled_at' => date("Y-m-d H:i:s")]); 
    } 
} 

\app\Console\Commands\CustomCommand.php

<?php 

namespace App\Console; 

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

class Kernel extends ConsoleKernel 
{ 
    protected $commands = [ 
     Commands\CustomCommand::class, 
    ]; 

    protected function schedule(Schedule $schedule) 
    { 
     $schedule->command('custom:command') 
       ->everyMinute(); 
    } 

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

私のコードこのようなものですジョブ(カスタム:コマンド)を実行すると、次のようにcronジョブが実行されます。php artisan custom:command

更新ステータスは2です。その後、手動でステータスを1に変更した後、1分待ってステータスを再度更新しません。

誰かが私を助けることができますか?

答えて

0

cronジョブを実行するには、ローカルWebサーバーでcronも設定する必要があります。

0

ステータスを手動で変更するにはどうすればよいですか? これをデータベースで変更しますか? 多分cronが動作していますが、 'id' int型のデータベースは '2'と同じで、多分これはあなたが変更を見ない理由です!

あなたはcronジョブがちょうど

public function handle() 
{ 
    Log::info('Cron job working'); // you can also print variables 
    $id = 1; 
    DB::table('orders') 
     ->where('id', $id) 
     ->update(['status' => 2, 'canceled_at' => date("Y-m-d H:i:s")]); 
} 

ログファイルには激怒しますそのログを追加

を働いているかどうかを確認するためのより良い方法を探している場合、あなたにログを持っていたことを忘れてはいけませんソース:

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use DB; 
use Log; // Here 

class CustomCommand extends Command 
関連する問題