Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: eAccelerator - metody put i get
Forum PHP.pl > Forum > PHP
radone
Witam,

mam problem z którym nie mogę sobie poradzić. Potrzebuje zapisać do kesza pewne dane za pomocą metody eaccelerator_put(). Wszystko prawie działa mi poprawnie, załóżmy ze mam plik index,php w public_html i w nim kawałek kodu:

eaccelerator_put( 'klucz', 'wartosc', 3600);

i na końcu gdzieś pobieram z kesza informacje eaccelerator_get('klucz');
Tak jak pisalem wszystko działa pięknie, ale ... mam rowniez skrypt w shell'u ktory jest wykonywany co kilka minut, ten skrypt odpala co jakiś czas plik np. index2.php w ktorym znajduje się metoda eaccelerator_put( 'klucz', 'wartosc', 3600); ktora wstawia do kesza dane. Problem pojawia się w momencie kiedy te dane sa wstawiane, z loga wynika ze operacje się udają i dane są zapisywane do kesza, lecz jak juz odpale plik index.php - tradycyjnie poprzez przeglądarkę to już tych danych tam nie ma ... zwraca pustkę i jak metodą eaccelerator_list_keys() wypiszę wszystkie klucze które są zapisane do kesza to tych nowych tam nie ma ... tak jakby jakaś przestrzeń nazw i w innej części kesza się to zapisuje ?

Ma ktoś z tym jakieś doświadczenie lub pomysł jak to pokonać ?
erix
Mhmm, to też zależy od tego, w jaki sposób są oba skrypty odpalane.

W dokumentacji eAccelerator jest zaznaczone, że interpreter musi być zainstalowany albo jako aplikacja FastCGI, albo jako moduł SAPI serwera. Jeśli wykonujesz przez powłokę bezpośrednio z poziomu interpretera, korzysta on z pamięci innej instancji interpretera.

Dlatego nie można polegać na tym w 100%. Idealne byłoby użycie tutaj memcached, do którego podłączają się wszystkie interpretery niezależnie od procesu.

Reasumując - spróbuj wykonywać skrypt z powłoki nie przez php..., tylko przez wget i URL do tego skryptu (ważne, aby się podłączyć do tej samej przestrzeni pamięci z obu wywołań).
radone
dzięki za odpowiedz ... jak odpalam jako wget to wszystko dziala prawidlowo ... czy da się coś z tym zrobić, nie chce odpalać tego jako wget, bo jak bedzie problem z łączem to skrypt się nie wykona ...
ActivePlayer
jesli na tej samej maszynie jest wywolanie lokalne oraz serwer dns, to nie bedzie problemów nawet w przypadku gdy łącze padnie bo serwer odwoła się do swojego ip
jotojo
podłącze się do tematu..
mam podobną sytuację i chyba kombinuje jak radone...
i spełnia warunki jak pisze ActivePlayer, ale jednak jak jest przerwa w serwerze to przerywa działanie i nie wykonuje się skrypt.
hmm, nie wiem czemu... może nie tu tkwi problem, może coś w skrypcie, ech już nie wiem sam.
erix
Bez szczegółowego opisu się za wiele nie da powiedzieć...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.