Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Gra internetowa via www, real time, Jak zmusić serwer do ciągłego odpalenia jednego skryptu?
Apocalyptiq
post 16.11.2009, 15:00:32
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


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ć?


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
Giexx
post 16.11.2009, 15:35:46
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.11.2009

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


Moze: http://pl.php.net/manual/pl/function.ignore-user-abort.php
Go to the top of the page
+Quote Post
phpion
post 16.11.2009, 15:41:15
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
Apocalyptiq
post 16.11.2009, 18:02:21
Post #4





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


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


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
phpion
post 17.11.2009, 15:02:01
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 2.07.2025 - 03:16