Man ir vairākas klientu pārdošanas punktu (POS) sistēmas, kas periodiski nosūta jaunus pārdošanas datus uz vienu centralizētu datubāzi, kurā dati tiek glabāti vienā lielā datubāzē pārskatu ģenerēšanai.
Klientu POS ir balstīta uz PHPPOS, un es esmu ieviesis moduli, kas izmanto standarta XML-RPC bibliotēku, lai nosūtītu pārdošanas datus uz pakalpojumu. Servera sistēma ir veidota uz CodeIgniter, un tā izmanto XML-RPC un XML-RPCS bibliotēkas tīmekļa pakalpojuma komponentei. Ikreiz, kad es sūtu daudz pārdošanas datu (tikai 50 rindas no pārdošanas tabulas un atsevišķas rindas no sales_items, kas attiecas uz katru pārdošanas vienību), es saņemu šādu kļūdu:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
128M ir noklusējuma vērtība php.ini
, bet es pieņemu, ka tas ir milzīgs skaitlis, lai to lauztu. Patiesībā es pat esmu mēģinājis iestatīt šo vērtību uz 1024M, un viss, ko tas dara, ir tas, ka kļūdas iznākšana aizņem ilgāku laiku.
Attiecībā uz pasākumiem, ko esmu veicis, esmu mēģinājis atspējot visu apstrādi servera pusē un esmu uzstādījis to, lai neatkarīgi no ievades atgrieztu konservētu atbildi. Tomēr es uzskatu, ka problēma ir faktiskajā datu nosūtīšanā. Esmu pat mēģinājis atslēgt maksimālo skripta izpildes laiku PHP, un tas joprojām kļūdās.