2016-09-27 150 views
2

我正在使用Laravel 5.3,在数字海洋LEMP堆栈液滴(ubuntu服务器)上。Laravel Cron Job未运行命令

我试图创建一个cron作业,每隔15分钟我的命令,它看起来像服务器上的cronjob正在运行,但命令没有得到执行。

现在,如果手动执行php artisan import:来自服务器终端的数据,它将完美运行。

这是我的crontab -e:

* * * * * php /var/www/itom/artisan schedule:run> /dev/null 2>&1 

在laravel文档就说明这一点:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1 

所以我确定这是正确的。

内部应用程序/控制台/ kernel.php:

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

protected $commands = [ 
    \App\Console\Commands\ImportData::class, 
]; 

protected function schedule(Schedule $schedule) 
{ 
    $schedule->command('import:data')->cron('*15/ * * * * *'); 
} 

在我的应用程序/控制台/命令/ ImportData.php:

use App\Import; 

class ImportData extends Command 
{ 

protected $signature = 'import:data'; 

protected $description = 'Imports page100.txt probe data'; 

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

public function handle() 
{ 
    $import = new Import; 
    $import->start(); 
} 

我不明白这是为什么不与cronjob工作,但它的工作时,我手动运行php工匠import:data

回答

3

在您的日程安排方法,你有 $schedule->command('import:data')->cron('*15/ * * * * *');

这应该更改为以下内容: $schedule->command('import:data')->cron('*/15 * * * * *');