情景描述:脚本可以正常跑,跑着跑着就说内存不足(代码已做的处理有:unset使用后的变量)
PHP Fatal error: Allowed memory size of 134217728 bytesexhausted (tried toallocate 135168 bytes)
后来查询后才知道,有可能是yii2的日志记录的部分所影响,存中存储的 message 的条数要大于等于预设的 $this->flushInterval 才会将内存中的message 刷到磁盘上去。
所以解决办法是让日志早一点刷到磁盘
在程序开始时,设置 flushInterval 为一个比较小的值
\Yii::getLogger()->flushInterval = 100; // 设置成一个较小的值
在程序执行过程中,每次 execute 之后对内存中的 message 进行 flush
\Yii::getLogger()->flush(true); // 参数传 true 表示每次都会将 message 清理到磁盘中
来源:https://www.niceym.com/14106.html,怕站点不能访问,记录一下