【问题标题】:In Laravel, command function of Schedule class is not working在 Laravel 中,Schedule 类的命令功能不起作用
【发布时间】:2016-04-05 01:56:42
【问题描述】:

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

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

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

但它不起作用,它总是显示“没有计划的命令准备好运行”。信息。

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

在 CLI 消息中:

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

【问题讨论】:

    标签: laravel-5 command call schedule laravel-artisan


    【解决方案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 键 + R 然后粘贴到 Taskschd.msc 并按 Enter。

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

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

    暂时将此页面设置为“每日”,然后单击“下一步”。

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

    确保选择启动程序并单击下一步。

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

    现在,选择左侧的任务计划程序库,在中间窗格中找到您的任务并右键单击并单击属性

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

    “开始任务”旁边顶部的下拉菜单更改为“任何用户登录时”

    选中显示重复任务间隔的框,然后从下拉列表中选择 5 分钟。一段时间后的下拉菜单:在同一行选择无限期。

    点击确定。完成。

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

    【讨论】:

    • 很抱歉通知您,这在我的 Windows 机器上不工作。
    【解决方案2】:

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

    php artisan insert:user
    

    【讨论】:

      猜你喜欢
      • 2015-04-02
      • 2016-05-14
      • 2022-12-15
      • 1970-01-01
      • 2021-09-24
      • 2019-08-18
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多