Php 任务调度

Php 任务调度,php,laravel,cron,wamp,taskscheduler,Php,Laravel,Cron,Wamp,Taskscheduler,我正在本地WAMP服务器上使用Laravel5.4。我想执行任务调度,但我不确定我是否真的理解这是如何工作的 我创建了一个cronEmail命令,并在handle()函数中添加了获取电子邮件的代码。 在Kernel.php中,我添加了以下内容: protected $commands = [ 'App\Console\Commands\cronEmail' ]; ... protected function schedule(Schedule $schedule) { $sc

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

我创建了一个cronEmail命令,并在handle()函数中添加了获取电子邮件的代码。 在Kernel.php中,我添加了以下内容:

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

...

protected function schedule(Schedule $schedule)
{
    $schedule->command('send:email')
             ->everyMinute();
}
所以基本上我想每分钟收到一封电子邮件。但我该如何开始呢? 我试着进入:

php artisan计划:运行>>/dev/null 2>&1

甚至

php C:\wamp64\www\seo parser\artisan计划:运行>>/dev/null 2>&1

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

如果我输入php artisan schedule:run,它实际上会发送一封电子邮件,但只发送一次

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

谢谢,, Patrick

如中所述,您需要在crontab中添加以下行

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
您可以通过在控制台中键入“crontab-e”来实现这一点。粘贴上一行并将“/项目路径”替换为项目路径

这导致cronjob每分钟调用一次“phpartisan schedule:run”命令


但这需要您运行Linux。如果您在运行Windows时需要crontab的替代品,您可以从阅读开始。

我建议您选择homestead。因此,您可以在Linux环境中尝试该代码,并且可以按照所有文档步骤进行操作。例如Cron作业。另一个优势是大部分主机使用Linux。下面是我如何在WAMP(Windows)上完成Laravel任务调度(cron作业),以处理计算机有时会睡眠的事实:在Windows上(与实际问题更相关)可以使用任务调度,但是任务调度器没有控制台,所以我应该把那行代码放在哪里?***php/项目路径/artisan计划:运行>>/dev/null 2>&1@PatrickTeixeiraFelix您可以创建一个.bat文件,该文件调用
php artisan schedule:run
并将其添加到任务计划程序中,如下所示:
schtasks/create/tn“MyTask”/sc minute/mo 1/tr“MyTask.bat”