我有一个自定义的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';
的值来记录内存使用情况。我看到每个循环使用的内存都在增加。