首页 > 解决方案 > Laravel 循环遇到内存问题

问题描述

我有一个自定义工匠命令,它具有:

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

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

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

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

实例化一个新的控制器会阻塞内存吗?循环中还有其他可能阻塞内存的东西吗?Laravel 有没有办法清除“一切”?

更新

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

标签: laravel

解决方案


推荐阅读