【问题标题】:Laravel 4: Why is my artisan command called 5 times in succession?Laravel 4:为什么我的工匠命令连续调用5次?
【发布时间】:2013-09-03 09:53:21
【问题描述】:

今天我遇到了一个关于 Artisan Command 生命周期的奇怪事情。

  1. 我添加了一个名为 cronjobs:MyCommand 的工匠命令。
  2. 创建了必要的文件和类。
  3. MyCommand 类扩展 BaseCommand

BaseCommand 是我用来对命令行操作进行基准测试的东西。 它由构造函数和析构函数组成。构造函数跟踪 操作的开始时间,析构函数记录当前时间减去 日志表中的开始时间。

令我惊讶的是,我发现 BaseCommand 上的 __destruct() 函数是 每次我通过工匠发出cronjobs:MyCommand 时,总共调用了 5 次。

这是正常行为吗?如果是,我应该如何处理日志记录?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    对 Symfony 2 的命令类的进一步测试表明,这是 Symfony 2 原生的问题,而 laravel 4 则没有。

    在工匠命令的类(或其父级)中以任何有用的方式使用构造函数/析构函数目前似乎是不可能的。

    任何意见仍然受到高度赞赏!

    【讨论】:

      【解决方案2】:

      问题似乎仍未解决。我还使用 __destruct 方法创建了一个基本命令,该方法被多次执行。

      我在我的基本命令中创建了一个关闭方法并在我的命令结束时调用。

      【讨论】:

        猜你喜欢
        • 2015-04-13
        • 2015-05-24
        • 2015-07-09
        • 2014-08-30
        • 2016-04-07
        • 2020-02-05
        • 1970-01-01
        • 2014-07-08
        • 2014-09-07
        相关资源
        最近更新 更多