Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Mam taki problem z pogranicza php.
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:
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. |
|
|
|
athabus Duże zużycie ram przy skrypcie wywołanym w konsoli 25.04.2017, 10:43:00
nospor 1)
A czy to API nie posiada metody, ktora pozwala ... 25.04.2017, 11:42:43
athabus Ad1. Niestety nie posiada. Co gorsza to jest API, ... 25.04.2017, 12:11:04
Crozin Zapewne w pobierzDane bądź updateItem (tak na 90% ... 25.04.2017, 12:13:27
Pyton_000 A nie możesz sobie napisać raw sql które zrobią to... 25.04.2017, 12:34:30
athabus Cytat(Crozin @ 25.04.2017, 13:13:27 )... 25.04.2017, 12:50:22
Crozin 1. PHP sam w sobie robi takie "freeMemory()... 25.04.2017, 16:18:27
athabus Dzięki Crozin - Garbage Collector znam, ale chyba ... 26.04.2017, 08:33:56 ![]() ![]() |
|
Aktualny czas: 20.12.2025 - 23:50 |