我在项目中使用Laravel 5。我想创建一个调度程序,每隔五分钟就会在我的数据库中插入一个用户数据。我正在使用Windows,我创建了一个Windows调度程序任务,其中包含将在每分钟运行的BAT文件。
在laravel部分,我在kernel.php中添加了我的代码,请看一下:
我还在Commands文件夹中创建了一个名为" InsertUser"的类。请看一下:
但它不起作用,它始终显示"没有预定的命令准备好运行。"信息。
为了您的帮助,我还想添加其他信息。在kernel.php中,当我使用call方法而不是命令时,它正在工作。请看一下:
在CLI消息中:
调用功能正常但命令功能不起作用。请用你扎实的知识帮助我。感谢。
答案 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