我有一堆客户的销售点(POS)系统,它们定期将新的销售数据发送到一个集中的数据库,该数据库将数据存储到一个大数据库中,以便生成报告。
客户端POS是基于PHPPOS的,我已经实现了一个模块,使用标准的XML-RPC库来发送销售数据到服务上。服务器系统建立在CodeIgniter上,并使用XML-RPC和XML-RPCS库作为网络服务组件。每当我发送大量的销售数据时(少则从销售表中发送50行,多则从sales_items中发送与销售中的每个项目有关的个别行),我就会得到以下错误。
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M是php.ini
中的默认值,但我认为这是一个巨大的数字,无法打破。事实上,我甚至试过将这个值设置为1024M,而它所做的只是花更多的时间来出错。
至于我所采取的措施,我已经尝试在服务器端禁用所有处理,并操纵它返回一个预制的响应,无论输入什么。然而,我相信问题出在数据的实际发送过程中。我甚至试过禁用PHP的最大脚本执行时间,但它仍然出错。