Laravel - 任务调度

时间:2017-12-14 12:34:33

标签: php laravel cron wamp taskscheduler

我在本地WAMP服务器上使用Laravel 5.4。我想执行任务调度,但我不确定我是否真的理解它是如何工作的。

我创建了一个命令cronEmail并在handle()函数中添加了代码,我将收到一封电子邮件。 在Kernel.php中我添加了这个:

protected $commands = [
    'App\Console\Commands\cronEmail'
];

...

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

所以基本上我想每分钟收到一封电子邮件。但是我该如何开始呢? 我试着进入:

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

甚至

php C:\ wamp64 \ www \ seo-parser \ artisan schedule:run>> / dev / null 2>& 1

在我的cmd上,但我总是得到: 系统找不到指定的路径。

如果我输入php artisan时间表:运行它实际上只会发送一次电子邮件。

我是否理解整个概念错了?我该怎么做呢?

谢谢你, 帕特里克

1 个答案:

答案 0 :(得分:2)

official Laravel documentation中所述,您需要将以下行添加到您的crontab。

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

您可以输入" crontab -e"在控制台中。粘贴上面的行并替换" / path-to-your-project"通过项目的路径。

这会产生一个cronjob,它会调用" php工匠的时间表:run"每分钟命令。

这要求你运行Linux。如果在运行Windows时需要替代crontab,可以先阅读here