Laravel 4:为什么我的工匠命令连续被召唤5次?

时间:2013-08-30 15:41:58

标签: php laravel

今天,我在Artisan Command的生命周期中遇到了一些奇怪的事情。

  1. 我添加了一个名为cronjobs:MyCommand的工匠命令。
  2. 创建了必要的文件和类。
  3. 班级MyCommand延伸BaseCommand
  4. BaseCommand是我用来基准命令行操作的东西。 它由构造函数和析构函数组成。构造函数跟踪 操作的开始时间,析构函数记录当前时间减去 日志表中的开始时间。

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

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

2 个答案:

答案 0 :(得分:1)

使用Symfony 2的命令类进一步测试表明,这是Symfony 2的原生问题,而不是laravel 4。

在这个时间点,以任何有用的方式在artisan命令的类(或其父级)中使用构造函数/析构函数似乎是不可能的。

任何输入仍然受到高度赞赏!

答案 1 :(得分:0)

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

我在basecommand中创建了一个shutdown方法,并在mycommand结束时调用。