W skrócie na serwerze stoi aplikacja webowa z API. Na tym samym serwerze wywołuję skrypt php w konsoli, który używa tego api do aktualizacji pewnych rzeczy.
Cała filozofia skryptu wygląda tak:
$items=pobierzDane(); foreach ($items as item){ $api->updateItem($item) }
Wszystko działa ładnie, ale... problem pojawia się, gdy jest bardzo dużo elementów do aktualizacji (kilkadziesiąt tysięcy wywołań api w pętli). Po prostu z czasem rośnie zużycie ram i wszystko zaczyna działać coraz wolniej i wolniej. Np. przez pierwsze 2-4 minuty mam aktualizacje 2-5 elementów na sekundę, a np. w 20 minucie działania skryptu jest to 1 element na 2 sekundy.
Jest jakiś sposób aby tą pamięć jakoś uwolnić z poziomu skryptu konsolowego? Nie wiem ogólnie nawet o co dokładnie pytam - chodzi mi o coś takiego aby zwolnić wszystkie zasoby i iść dalej. Ogólnie myślicie, że problemem jest coś w skrypcie konsolowym czy jednak po prostu bardzo duża ilość zapytań do API powoduje taki efekt? Wydaje mi się, że problem leży raczej w skrypcie konsolowym, bo api za każdym razem jest wywoływane i po wywołaniu w teorii pamięć powinna się zwalniać.
Jeśli w czymś może to pomóc to samo api pochodzi ze skryptu Prestashop i chodzi o aktualizację danych produktów, kombinacji etc.