Laravel cron无法自动工作

时间:2015-11-22 13:25:08

标签: laravel cron artisan

我正在通过苏格兰威士忌在Laravel开展一个项目。我试图通过cronjobs自动化一些东西。问题是我的cron没有自动运行,但是当我php artisan schedule:run它完全运行我的任务时。

应用/命令/ sendmail.php     

namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mail;

 class sendmail extends Command {
  protected $name = 'sendMail';
  protected $description = 'A mail has been send ';

public function fire()
{
    Mail::send([],[], function($message)  {
       //sendmail function that works...
    });    
    }
 }

应用/控制台/ Kernel.php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\DB;
use App\Battle;
use Carbon\Carbon;
use App\Console\Commands\Inspire;
use App\Commands\mails;
class Kernel extends ConsoleKernel
{

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

protected function schedule(Schedule $schedule)
{
    $schedule->command('inspire')
             ->everyMinute();

    $schedule->command('sendMail')
        ->everyMinute();
}
}

crontab -e

# m h  dom mon dow   command
* * * * * php var/www/artisan schedule:run

2 个答案:

答案 0 :(得分:2)

问题最终是使用相对路径与绝对路径。

使用定义为var/www/artisan的相对路径将根据当前工作目录设置路径。这意味着App/Console/var/www/artisan没有工匠的位置。

相反,使用/var/www/artisan之类的绝对路径会将目录直接设置为/var/www/artisan,这将是工匠的正确位置。

答案 1 :(得分:1)

* * * * * php -d register_argc_argv=On /var/www/artisan schedule:run