GRY-Online.pl --> Archiwum Forum

problem w php - jaki kod by dany skrypt php wykonywał się co ściśle okre...

16.05.2006
09:22
[1]

nblades [ Junior ]

problem w php - jaki kod by dany skrypt php wykonywał się co ściśle okre...

Mam wielki problem - dużo ciekawych pomysłów. Między innymi pomysł na grę online. Zatrzymał mnie prozaiczny problem - w jaki sposób napisać skrypt pgp - który co ściśle określony czas (jakby turę) wykonywał ściśle określone operacje. Mam serwer z php i msql więc przetestowanie i rozwój jakby zapewniony - jak starczy pomysłów i czasu. Pomocy

16.05.2006
10:07
[2]

_Robo_ [ Senator ]

O jaki czas chodzi? Jesli o czas w sensie np co godzine, co 5 minut - to nie da sie tego samym php zrobic. Musisz wykorzystac cos dodatkowego. Np "cron" w systemach uniksowych. Wpisujesz tam, zaby wywolal skrypt php co scisle okreslony czas.

16.05.2006
11:36
[3]

Sephion [ One Winged Angel ]

Mozesz uzyskac cos na ten wzor prostym sposobem. Zrob plik w ktorym zapiszesz sobie czas ostatniego wykonania. Nastepnie przy kazdym odswiezaniu skrypt bedzie sprawdzac czy od ostatniego wykonania minelo conajmniej 5h. Jak tak, to zrobic co ma zrobic i zaktualizuje wpis w pliku.
Zeby skrypt byl wykonywany zawsze co 5h to musisz uzyc crona.

16.05.2006
11:47
[4]

Regis [ ]

Serwer zapewne linuxowy? Przeczytaj o czyms takim jak 'cron' - uwuchamianie wybranych uslug/programow o zadanej porze. Rozwiazanie podaneprzez Sephiona ma jedna wielka wade - polecenie nie wykona sie dopoki ktos go nie aktywuje wchodzac na strone. Czyli zamiast wykonywac sie co 5 godzin wykona sie co 5godzin + czas jaki minal od wlasciwej pory (tych 5 godzin) do pierwszego wejscia na strone. Czyli teoretycznie jak takie przeliczenie mialoby wyjsc o 2.00 w nocy (ale nikogo o tej porze nie bedzie), a pierwszy gosc pojawi sie o 6.30, to skrypt wykona sie nie po 5, a po 9.5 godzinach.

16.05.2006
11:50
[5]

yasiu [ Generaďż˝ ]

a ja mam pytanie takie - ile trwa tura? bo skrypt ma sie wykonywać co turę - to jest stały czas? dlaczego nie możesz wrzucić go do kodu wykonywanego na początku/końcu tury?

16.05.2006
11:57
smile
[6]

Regis [ ]

Jak sobie wyobrazasz takie rozwiazanie? Tura to okreslony czas i taki skrypt musi sie wykonac kazdego dnia o okreslonej godzinie. Chyba nie bardzo rozumiesz w czym rzecz :)

16.05.2006
12:19
[7]

yasiu [ Generaďż˝ ]

aa no tak... zrozumialem, ze sam mechanizm turowy jest... no to tak jak pisali przedmocy - cron, crontab... sa narzedzia :)

16.05.2006
13:02
[8]

Sephion [ One Winged Angel ]

Ale, zeby wykonac ture ktos i tak musi wejsc na strone i spowodowac uruchomienie skryptu. A wtedy jakies tam statysytyki itd. moga byc odnowione. W koncu jak nikto nie wejdzie by zagrac to nowa tura nikomu nie bedzie potrzebna. Takie zastosowanie skryptu mozna bez problemu zrobic bez crona. Co innego jak chcialbys mailowac jakies statystyki co 5h itd.

Regis --> co z tego, ze wykona sie po 9,5h? I tak nikt tego nie zauwazy. Wystarczy dobrze napisac skrypt i uruchomi sie znow za 0,5h. Starczy do tego petla ktora ma obliczac jaki czas wykonania powinien byc zapiasny do pliku. Ot:

$last = 123123123; // ostatni czas wykonania w czasie unixa
$tury = floor( (time() - $last)/(5*60*60) );

skrypt teraz moze policzyc odpowiednie statystyki i przemnozyc przez liczbe zaleglych tur, jesli np. serwer nie dzialal przez 2 dni itd.
a pozniej juz tylko dopis sekund:

$last += $tury*5*60*60; //dolicza tylko pelne tury

19.05.2006
11:21
[9]

nblades [ Junior ]

nie do końca. To musi być tak, że skrypt wykonuje się na przykład co 15 minut i coś zapisuje/odczytuje z bazy danych. To musi chodzić samo - oczywiście może potrzebny będzie conajmniej jeden obecny na stronie - ale nie wiem do końca czy rzeczywiście.

19.05.2006
11:45
smile
[10]

slowik [ NightInGale ]


jest cos takiego ale wymaga zainstalwoanych bonusow

zapuszczasz w bezkoncowej petli takie cos :-)

19.05.2006
13:26
smile
[11]

Regis [ ]

Sephion --> Takie skrypty przetwarzaja zwykle duze ilosci danych. Ot, w takim RedDragonie przeliczenie trwalo pol godziny. Po to ma sie ono odbywac w nocy, zeby nie utrudniac zycia graczom. A nie, ze ktos wchodzi o 11.00 zeby pograc i ma 0.5h czekania, bo jest pierwszym gosciem od ostatniego przeliczenia :)

© 2000-2024 GRY-OnLine S.A.