Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gra internetowa via www, real time
Forum PHP.pl > Forum > PHP
Apocalyptiq
Mam taki problem - stworzyłem grę internetową, w której odbywają się mecze - każdy jest generowany na podstwie umiejętności zawodników + element losowy. Mecz ma być generowany na bieżąco, ponieważ użytkownicy mają mieć możliwość ingerencji w mecz (zmiany itp.). Narazie rozwiązałem to tak, że co 1 minutę poprzez cron odpalam skrypt który ciągle oblicza kolejne akcje (przytrzymuję go na loopie przez sleep na 60 sekund). Nie da rady odpalić go tak po prostu na loopie sleep() bez końca, bo jest w końcu jakiś limit wykonywania się skryptu.

Do czego zmierzam - czuję że ten mój sposób nie jest za wydajny, wydaje mi się że coś nawet serwer przez to przymula.

Ma ktoś jakiś pomysł w jaki inny sprytny sposób można ten problem rozwiązać?
phpion
Po co odpalasz skrypt co minutę robiąc w nim pętlę, która wstrzymuje swoje działanie na minutę? Gdzie tu logika? Ja robię tak:
- odpalam skrypt CRONem co 5 minut,
- ustawiam czas maksymalnego wykonania skryptu na 4:45 (15 sekund "oddechu" dla serwera) - po tym czasie skrypt kończy działanie,
- tworzę nieskończoną pętlę*, w której za każdym razem jest ustawiony sleep (np. 5 sekund).

* która i tak zakończy się gdy minie maksymalny czas wykonania skryptu.
Apocalyptiq
Glexx - ta funkcja jest z tego co widze co do strony klienta, nie serwera, ale dzięki, może i to sie przyda ;-)

phpion - hm, gdzie tu logika? robisz tak samo jak ja przecież :-) a u mnie max czas wykonywania sie skyptu to jakaś niecała minuta z tego co kojarze
phpion
Cytat(Apocalyptiq @ 16.11.2009, 16:00:32 ) *
co 1 minutę poprzez cron odpalam skrypt który ciągle oblicza kolejne akcje (przytrzymuję go na loopie przez sleep na 60 sekund).

Nie bardzo widzę logiki w takim podejściu. Przecież jeśli przytrzymasz skrypt na czas >= maksymalnego czasu wykonania skryptu to i tak wykona się on tylko raz.
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.