2015-06-07 1 views
3

создать команду conttroller, это мой кодLaravel 5 График работы с -> хрон ('* */1 *'), но не работает с -> ежечасно()

<?php namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use App\Http\Controllers\AppController; 


class UpdData extends Command { 

    protected $name = 'upd:data'; 

    protected $description = 'Update data'; 

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

    /** 
    * Execute the command. 
    * 
    * @return void 
    */ 
    public function handle() 
    { 
     $app = new AppController; 
     $this->info("updated!"); 
     $app->update_data(); 
    } 
} 

Это мой кронтаб

#!/bin/bash 
PATH=/usr/bin 
* * * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1 

Мой Kernel.php файл

<?php namespace App\Console; 

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', 
     'App\Console\Commands\UpdData', 
    ]; 

    /** 
    * Define the application's command schedule. 
    * 
    * @param \Illuminate\Console\Scheduling\Schedule $schedule 
    * @return void 
    */ 
    protected function schedule(Schedule $schedule) 
    { 
     // $schedule->command('upd:data')->hourly(); // case 1 
     $schedule->command('upd:data')->cron('* */1 * * *'); // case 2 
    } 
} 

в случае 1, я стараюсь php artisan schedule:run, я получаю No scheduled commands are ready to run.. На деле 2 это работает, но я должен сам командовать. Но два случая не запускают его автоматически. Я строю свою платформу на облаке9, мне нужна ваша помощь!

+0

Метод [ 'hourly'] (https://github.com/laravel/framework/blob/5.0/src/Illuminate/Console/Scheduling/Event.php#L290) использует' cron' внутренне, потому что это просто вспомогательный метод, поэтому он должен работать. – Bogdan

+0

Я попытался использовать команду для вызова моего созданного. Моя команда будет вставлять db, и она работает. Но я пытаюсь использовать расписание для вызова моей команды, это не работает. Понятия не имею. Я уверен, что мой cron работает, потому что я добавил простой файл касания на cron. – lighter

+0

Не должно быть 00 */1 * * * для запуска почасово? –

ответ

0

Я не могу найти причину, но этот код работает для меня, если я нахожу настоящую причину, я обновлю свой ответ.

Это работа для меня, замените hourly на cron.

protected function schedule(Schedule $schedule) 
{ 
    $schedule->command('upd:data')->cron('0 * * * *'); 
} 
Смежные вопросы