我在本地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时间表:运行它实际上只会发送一次电子邮件。
我是否理解整个概念错了?我该怎么做呢?
谢谢你, 帕特里克
答案 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。