Laravel Schedule命令不起作用

时间:2015-12-29 12:28:51

标签: windows laravel command-line cron scheduled-tasks

我在项目中使用了laravel 5。我想创建一个用于插入用户的调度程序。在kernel.php中,我输入了我的代码并设置了调度程序。

Displaying Bitmaps Efficiently

我创建了一个名为“InsertUser”的命令类,并将其放在kernel.php $ commands变量中。

enter image description here

在命令行中,我运行了“php artisan schedule:run”。但我发现“没有预定的命令可以运行。”如果我使用调用函数而不是命令函数(在lernel.php中),它工作正常。请帮帮我。

2 个答案:

答案 0 :(得分:3)

Laravel Scheduler 需要一个定期运行php artisan schedule:run命令的cron作业,该命令反过来评估任何已调度的命令并相应地运行它们。

从屏幕截图中我看到您正在运行Windows,这意味着您无法使用文档中Starting The Scheduler部分中的作业代码段,因为没有cron视窗。由于这一点,任务计划程序不正式支持Windows,并且在文档中没有找到有关它的说明。

但是,您可以通过创建具有以下内容的批处理文件(例如scheduler.bat)解决问题:

cd c:\lamp\www\larasoft
php artisan schedule:run 1>> NUL 2>&1

然后,您可以每分钟添加一个Windows Scheduler Task来运行该文件。

答案 1 :(得分:1)

Windows确实支持 Laravel Scheduler ,但您必须多次自行运行该命令。由于我们无法使用 Windows任务计划程序每1分钟运行一次,因为我们可以使用linux crontab。如果您正在使用Windows进行开发环境,并且想要测试命令是否正在运行,则可以尝试此

如果你运行

  

php artisan schedule:运行

多次执行

命令,为每个试验提供最小间隙,它将起作用。

enter image description here

如果您想直接运行命令,可以按照此操作。

  

“path \ to \ php.exe”“artisan”YourCommand> “NUL”2>& 1&

在你的情况下

  1.   

    在命令提示符下运行“where php.exe”

  2.   

    复制php位置

  3.   

    “粘贴\你的\ php \ location”“artisan”InsertUser> “NUL”2>& 1&