我在本地的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调度:运行>> /dev/空2>&1
甚至是
php C:\ 2>&1 64\www\seo-parser\artisan调度:运行>> /dev/空wamp64
在我的命令上,但我总是得到:系统找不到指定的路径。
如果我输入php artisan schedule:run,它实际上会发送一封电子邮件,但只发送一次。
我对整个概念的理解是错误的吗?我该如何正确地做到这一点?
谢谢你,帕特里克
发布于 2017-12-14 20:48:32
正如official Laravel documentation中所述,您需要将以下行添加到crontab中。
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1您可以通过在控制台中输入"crontab -e“来完成此操作。粘贴上面的行并将"/ path - to - your - project“替换为您的项目的路径。
这导致cronjob每分钟调用一次"php artisan schedule:run“命令。
不过,这需要您运行Linux。如果你在运行Windows时需要crontab的替代品,你可以从阅读here开始。
https://stackoverflow.com/questions/47813514
复制相似问题