Laravel循环遇到内存问题

时间:2019-06-16 19:46:15

标签: laravel

我有一个自定义的artisan命令,它具有:

public function handle()
{
  while(true)
  {
    $controller = new MyController;
    $controller->myFunction();
  }
}

我知道这很棘手,但是在尝试了一些事情并在此处找到一些答案之后,这似乎是实现我的目标的最佳方法。我不能使用cronjobs或调度,因为myFunction可以运行1秒到15秒,我希望它可以连续运行。

上述问题是我遇到了内存问题。我已经设置了memory_limit=1024M,但这不能解决问题。

myFunction很大,它是一个我不想在这里发布的交易机器人,但是我想知道是否有任何方法可以“清除”这些信息(据我所知去... ;-))。我不需要/不想在内存中堆积东西,每次循环后都可以清除所有内容。

是否正在实例化一个新的控制器来阻塞内存?循环中还有其他任何东西可能会阻塞内存吗? Laravel中有什么方法可以清除“一切”?

更新

我在循环中添加了$controller = NULL;,并且通过在每个循环中存储(memory_get_usage(true) / 1024 / 1024) . ' MB';的值来记录内存使用情况。我看到每个循环使用的内存都在增加。

0 个答案:

没有答案