Laravel - 任务调度

问题描述 投票:0回答:1

我在本地 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 schedule:run
,它实际上会发送一封电子邮件,但只会发送一次。

我对整个概念的理解是错误的吗?我该如何正确地做到这一点?

php laravel cron wamp windows-task-scheduler
1个回答
2
投票

官方 Laravel 文档中所述,您需要将以下行添加到您的 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 的替代方案,您可以先阅读此处

© www.soinside.com 2019 - 2024. All rights reserved.