在Laravel中,Schedule类的命令功能不起作用

时间:2015-12-31 03:24:10

标签: laravel-5 command call schedule artisan

我在项目中使用Laravel 5。我想创建一个调度程序,每隔五分钟就会在我的数据库中插入一个用户数据。我正在使用Windows,我创建了一个Windows调度程序任务,其中包含将在每分钟运行的BAT文件。

在laravel部分,我在kernel.php中添加了我的代码,请看一下:

enter image description here

我还在Commands文件夹中创建了一个名为" InsertUser"的类。请看一下:

enter image description here

但它不起作用,它始终显示"没有预定的命令准备好运行。"信息。

为了您的帮助,我还想添加其他信息。在kernel.php中,当我使用call方法而不是命令时,它正在工作。请看一下:

enter image description here

在CLI消息中:

enter image description here

调用功能正常但命令功能不起作用。请用你扎实的知识帮助我。感谢。

2 个答案:

答案 0 :(得分:1)

你缺少这个命令,你必须将它添加到crontab,但这只能在linux或类似的版本中运行。

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

在Windows中也可以使用Windows任务计划程序,但缺点是它可以设置的最低值是每5分钟,这对于测试环境仍然可以。

我创建了一个批处理文件scheduler.bat,其中包含以下内容

cd \path\to\project\ C: \path\to\php\php-5.6.3\php.exe artisan schedule:run 1>> NUL 2>&1

更改导演以符合您的设置。

如果您已成功将php添加到PATH变量,那么第二行可以读取php artisan,不需要确切的位置。但是您需要确保首先浏览到项目根目录。

然后启动任务调度程序Windows Key + R,然后粘贴到Taskschd.msc并按Enter键。

然后单击“操作”窗格右侧的“创建基本任务”。

为您的任务命名,以便在需要修改或运行多个项目时知道它是什么,然后单击“下一步”。

现在将此页面设置为Daily,然后单击Next。

也将此页面保留为默认值,然后单击“下一步”。

确保选中“启动程序”,然后单击“下一步”。

浏览到我们刚刚创建的批处理文件,然后单击“下一步”,然后单击“完成”。

现在,选择左侧的Task Scheduler Library,在中间窗格中找到您的任务,然后右键单击并单击Properties

转到“触发器”选项卡,单击列表中的“每日”,然后单击“编辑”。

开始任务更改为“登录任何用户

”旁边顶部的下拉列表

选中“重复任务每次”复选框,然后从下拉列表中选择5分钟。持续时间之后的下拉列表:在同一行上选择无限期。

单击“确定”。完成。

然后在中间窗格中右键单击您的任务,然后单击“运行”以启动它。

答案 1 :(得分:0)

转到项目路径并运行以下代码并检查输出。

php artisan insert:user