Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] update bazy 24h co pare sekund
prz3kus
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

Ostrzeżenie: (0%)
-----


Witam mam pytanie trapiące moją ciekawość, jak w grach online robią przyrost surowców może coś sie dowiem czego nie wiem

Próba 1:
Wrzuciłem wykonywanie skryptu do crontaba jenak ma to wade wykonuje się co minuta niby ok ale wizualnie do kitu no i jak wiemy w tych grach często liczą się sekundy
Próba 2:
Użyłem biblioteki jquery i odświeżam sobie stronkę zapisując aktualną datę do bazy powiedzmy co 15s. Wizualnie wszytko OK jednak wada jest taka ze wylogowując się surowce nie rosną , chodź po kolejnym lgowaniu przyrost się wyrównuje to jednak nie ma to sensu.

Próba3:
Strona odświeżająca się co 15s jednak trzymać ciągle on-line mało stabilne rozwiązanie.

Odpowiadając na trapiące pytania nie piszę gry jednak jestem bardzo ciekawy jak to jest rozwiązywane w tych grach on-line.

Pozdrawiam
prz3kus
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Funkcja sleep(X) zatrzymuje wykonywanie skryptu na X sekund, zaś time_sleep_until(X) zatrzymuje go do czasu X określonego jako timestamp. Ja używałem sleep(20) w swoim skrypcie w rekurencji na zasadzie:
- ustaw time limit, ignore user abort i parę innych,
- zrób coś,
- sleep(20),
- wywołaj pewien kontroler,
- wywołaj sam siebie,
- exit.

Dzięki temu skrypt mógł działać w nieskończoność. Jego zatrzymanie było uzależnione od "zrób coś", gdyż był tam warunek stopu. Gdyby nie to, to skrypt był niemal nie do zatrzymania, bo co chwilę tworzył swoje własne wątki i musiałbyś mieć dostęp do shella by to próbować skillować. Dlatego najpierw gruntownie go testowałem na localhoście. Służy mi on do wysyłki maili na jednym z serwisów. Mam jego uruchomienie w cronie, więc pełen automat o jakim można zapomnieć że chodzi (IMG:style_emoticons/default/winksmiley.jpg) Sam skrypt jest wstrzymany na 20 sekund przy każdym "wątku", ale w żaden sposób nie wpływa na cały interpreter php. Gdyby tak było to serwis leżałby każdej nocy na długi czas.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 08:45