致命错误:允许内存大小为134217728字节耗尽(CodeIgniter+XMLRPC)

致命错误:允许内存大小为134217728字节耗尽(CodeIgniter+XMLRPC)

我有许多客户端销售点(POS)系统,定期将新的销售数据发送到一个集中式数据库,该数据库将数据存储到一个大型数据库中,以便生成报表。

客户端POS基于PHPPOS,我实现了一个模块,该模块使用标准的XMLRPC库向服务发送销售数据。服务器系统构建在CodeIgniter上,使用XMLRPC和XMLRPC库作为webservice组件。每当我发送大量销售数据(从Sales表中发送50行数据,从Sales_Items中单独发送与Sales中每个项目相关的行)时,我都会得到以下错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)

中的默认值为128 m。php.ini,但我认为这是一个很大的数字要打破。事实上,我甚至尝试将这个值设置为1024M,而它所做的只是花费更长的时间来出错。

至于我已经采取的步骤,我已经尝试禁用服务器端的所有处理,并已经操纵它返回一个屏蔽响应,而不管输入。然而,我相信问题在于数据的实际发送。我甚至尝试禁用PHP的最大脚本执行时间,但仍然出错。


慕尼黑的夜晚无繁华
浏览 1007回答 3
3回答

噜噜哒

更改memory_limit通过ini_set('memory_limit', '-1');是不正确的解决办法。请不要那样做。您的PHP代码可能在某个地方出现内存泄漏,您正在告诉服务器只使用它想要的所有内存。你根本不可能解决这个问题。如果您监视您的服务器,您将看到它现在可能正在消耗大部分RAM,甚至交换到磁盘。您可能应该尝试跟踪代码中的违规代码并修复它。

天涯尽头无女友

ini_set('memory_limit', '-1');重写默认设置PHP内存限制.
打开App,查看更多内容
随时随地看视频慕课网APP