2016-10-28 3 views
0

Я создать задачу Laravel и добавил к моему кронтаб файлНастройка Laravel Планирование задач с помощью Crontab


приложение/Console/Kernel.php

<?php 

namespace App\Console; 

use Carbon; 

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::class, 
    ]; 

    /** 
    * Define the application's command schedule. 
    * 
    * @param \Illuminate\Console\Scheduling\Schedule $schedule 
    * @return void 
    */ 
    protected function schedule(Schedule $schedule) 
    { 
     $now = Carbon\Carbon::now('America/New_York'); 
     $dt = Carbon\Carbon::parse($now); 
     $time_start = $dt->toTimeString(); 
     $dt = str_replace('-','_',$dt); 
     $dt = str_replace(' ','_',$dt); 
     $dt = str_replace('/',':',$dt); 
     $schedule->exec('curl '.env('APP_URL').'fbwifi/acl_update')->everyMinute() 
      ->sendOutputTo(public_path().'/tasks/log_'.$dt.'.txt'); 
    } 
} 

кронтаб файл

*  *  *  *  *  /usr/local/bin/php artisan schedule:run 
*  *  *  *  *  php artisan schedule:run 

Результат

По некоторым причинам мой кронтаб не вызывают.

Через 5 минут я не вижу ничего в моей папке public/tasks/.

Я даже попытался поместить полный путь к моему php.

Я ничего не пропустил?

Как бы это сделать и отладить это?


Я открываю любые предложения на данный момент.

Любые подсказки/предложения/помощь по этому поводу будут очень благодарны!

+0

В вашем crontab вы должны использовать полный путь для команды artisan. 'php/path/to/your/project/artisan schedule: run' – zorx

+0

Как насчет PHP? Не нужно ? – ihue

+0

Я полагаю, что '/ usr/local/bin /' уже находится в вашем 'PATH', поэтому не нужно – zorx

ответ

1

В вашем crontab вам нужно указать путь к файлу ремесленника в корневой каталог вашего проекта.

* * * * * php /path/to/project/artisan schedule:run

Если у вас возникли проблемы с поиском абсолютного пути к вашему маршруту проекта затем откройте терминал, cd в папку маршрута вашего проекта, а затем использовать pwd команды, которая даст вам абсолютный каталог.

Так, например:

$ cd MyUser/dev/project 
$ pwd 

Выведет что-то вроде

Тогда ваш cronjob будет выглядеть

* * * * * php /Users/MyUser/dev/project/artisan schedule:run

попробовать также перезапустить демон cron. Я обнаружил, что иногда помогает, когда что-то не работает для меня.