У мене є купа клієнтських POS-систем, які періодично відправляють нові дані про продажі в одну централізовану базу даних, яка зберігає ці дані в одну велику базу даних для формування звітів.
Клієнтська POS заснована на PHPPOS, і я реалізував модуль, який використовує стандартну бібліотеку XML-RPC для відправки даних про продажі в сервіс. Серверна система побудована на CodeIgniter, і використовує бібліотеки XML-RPC і XML-RPCS для компонента веб-сервісу. Щоразу, коли я відправляю велику кількість даних про продажі (до 50 рядків з таблиці sales, а також окремі рядки з sales_items, що стосуються кожного товару в межах продажу), я отримую наступну помилку:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M - це значення за замовчуванням в php.ini
, але я припускаю, що це величезне число, яке можна порушити. Насправді, я навіть спробував встановити це значення на 1024M, і все, що це робить, це займає більше часу для помилки.
Що стосується кроків, які я зробив, я спробував відключити всю обробку на стороні сервера, і налаштував його так, щоб він повертав шаблонну відповідь незалежно від введених даних. Однак, я вважаю, що проблема полягає у фактичній відправці даних. Я навіть спробував відключити максимальний час виконання сценарію для PHP, і він все одно видає помилку.