[ miskec @ 09.05.2006. 15:56 ] @
Evo ovako,
imam jedan sajt koji ima malkice slozeniji admin panel nego obicni sajovi. E sad meni reba da se jedan broj upise u jednu celiju mysql baze svake noci u 3:00h, tj. treba da mi se pokrene jedna funkcija iz nekog php fajla u 3:00h. E sad ja to mogu da uradim tako sto svako vece da cekam 3:00h i da pokrecem taj php file koji ce da pokrene tu funkciju koja ce da izvrsi to zapisivanje u tu bazu. Ali ja ocu da to server uradi sam a da nema nikog online na tom sajtu.

Znaci konketno mi treba kako reci serveru da u 3:00h nocu pokrene neku funkciju iz nekog php fajla. Nesto tipa pomocu neke php funkcije zadas serveru da on u neko planirano vreme sam izvrsi neku funkciju tj. neki php file koji ce u ovom mom slluca izvrsiti upisivanje jedne vrednosti u bazu.

Ovo mi je stvarno jako potrebno pa ako neko zna bice super. Znam da moze da radi jer sam video da na nekim sajtovima to super radi samo ne znam kako se to paravi a treba mi.

Unpred HVALA!!!

edit: ispravljen naslov

[Ovu poruku je menjao SmilieBG dana 10.05.2006. u 13:26 GMT+1]
[ bokacbl @ 09.05.2006. 16:09 ] @
>
>
>
Za to ti treba jedan tzv. Cron job...

proguglaj malo Cron i nacices sve sto ti treba
[ miskec @ 09.05.2006. 16:33 ] @
Hm bas sam procito sve cronu i to nije to sto trazim. Ovako kao prvo na mom serveru cron nije instaliran. Kao drugo vremena izvrsavanja funkcija u cronu se podesavaju ili u admin panelu od hostinga ili tako sto se na server uploada cron.txt file u kome se nalaze komande koje treba da izvrsi i u koje vreme trba da ih izvrsi. E sad ovo je super fora. Ali meni treba da ja pomocu mog php koda na sajtu kriram to vreme za izvrsenje te funkcije jer ono nije bukvalno 3:00h kao sto sam gore napiso vec se menja. Znaci treba mi da ja pomocu moje neke php strane setujem vreme tako da se u to vreme izvrsi neki php file ili funkcija php. Da li me kapirate?
[ SmilieBG @ 09.05.2006. 17:32 ] @
"Znaci treba mi da ja pomocu moje neke php strane setujem vreme tako da se u to vreme izvrsi neki php file ili funkcija php"

Onda, tu prvu skriptu stavi u cron (recimo 10 x na dan); ta skripta ce da pravi cron.txt u kojem ce da stoji dinamicko vreme izvrsenja druge skripte.

Poz,
Sale
[ miskec @ 10.05.2006. 09:01 ] @
Hm da ali jel postoji neka druga mogucnost osim cron-a posto ja na tom serveru nemam dozvoljen cron
[ w3bl0rd @ 10.05.2006. 10:51 ] @
pa onda nek ti sa drugog servera pozivaju skriptu :D
imaš nekoliko besplatnih servisa koji nude cron... dakle ti poštelaš cron sa drugog servera da otvara tvoju stranicu...
[ miskec @ 10.05.2006. 11:11 ] @
Da to je jako dobra ideja koja super moze da se realizuje toga se nisam setio. Ali ona ima jedan jako veliki problem. A to je sto ja sa mog sajta nemogu da podesim taj cron na drugom serveru. Ja hocu da na mojoj strani u okviru sajta da se proracuna to vreme koje nije nikad isto zavisi od toga kad je korisnik posetio sajt i jos nekih parametara. Takodobijeno vreme treba da se setuje u cronu automacki a ne da ja prvvo odem u admin pa u cronu podesavam sva ta vremena. rba mi da se cron podesava direktno sa sajta jel ta vremena nisu staticna vec zavise od parametara i poseta sajta. To je big problem a vec dva dana trazim po netu i nista nemogu da nadjem da resim to... smrc :(
[ miskec @ 10.05.2006. 11:18 ] @
Evo posto vidim da se slabo razumemo dacu konkretan primer koji mi treba da realizujem na sajtu. Rec je o jednoj maloj glupoj igrici.
Igrac se loguje igra tu igru koja je mala glupa strategija. E sad igrac odluci da posalje svoju vojnu jedinicu na drugo mesto. On odabere jedinicu i posalje je u 11:32h. E sad toj jedinici treba 2 sata da dodje na odrediste. Ono ce na odredistu da bude u 13:32. U medju vremenu igrac ce da ode i nece vise bitei logovan u igri. PHP treba da podesi da se u 13:32 izvrsi jedan php file koji ce u mysql bazu da ubaci da je ta jedinica stigla na to mesto. Eto to mi treba da resim zato mi treba to automacko pokretanje funkcija.

Mislio sam da to uradim tako sto kad se korisnik loguje posle 13:32 da se onda ucita to medjutim on moze da se loguje uvece u 18:00h a u medjuvremenu se mnogo stvari u igri izmenilo i protivnici i sve i zato mora da se ubaci u bazu da je jedinica stigla tacno u to predvidjebo vreme(u ovom slucaju 13:32).

nadam se da ste me sad skapirali. Jel ima neko resnje za to. Mora da ima jer sam vec video igre koje radena tom principu ali ne znam kako se sve to pravi.

[ SmilieBG @ 10.05.2006. 12:26 ] @
Verovatno ne razumem koncept igre, ali zasto ne upises odmah (u 11:32) da ce ta jedinica biti u 13:32 na odredistu?! :|

Ako bash hoces preko crona, mozes li onda, za sve igrace jedan php da priremis koji ce to da upisuje i samo taj php da pozivas svakih 5 minuta? Onda nece biti skroz real-time igra, vec na 5 minuta... Ili podesis cron na 1 minut... ili 5 cronova na 1 minut, da svaki radi odredjene akcije u igri...

Poz,
Sale
[ miskec @ 10.05.2006. 12:54 ] @
Pazi ovako nemozes odma da upises u 11:32 da je jedinica stigla zbog toga sto se od 11:32 do 13:32 ceo sistem promenio kapiras ima raznih promena koje uticu na samu akciju pa ne moze jendostavno da se ubaci unapred ili kad prodje 13:32 da se ubaci to ne moze.

Medjutim ova tvoja ideja nije uopste ni najmanje losa. Stavio bi to na minut ili na neko krace vreme tipa 30 sekundi ali se bojim da se nepreoptereti server pa da mi onda neizvrsi lepo taj moj php file. Nisu to slozene operacije tipa snimanje u bazu i malo sabiranja i oduzimanja nista strasno ali ako se desi da se u istom trenutku obavi jako veliki broj operacija ako ima puno igraca bojim se da nezagusm server. Koje bi vreme bilo onako naj realnije d astavim 30 sec 1 min 2 min a d anije suvise dugo da se igra priblizi sto vise realnom vremenu.

Ovaj predlozeni nacin mi se cini kao jedini moguci. Samo jos da nadjem neki free hosting koji ima cron i superiska. Ako neko ima neku bolju ideju neka kaze sad ili neka cuti zauvek LOL :D

[Ovu poruku je menjao miskec dana 10.05.2006. u 13:55 GMT+1]
[ u_m @ 10.05.2006. 15:31 ] @
meni je ovo glupo. zasto pored akcija koje odradjuju igraci da server opterecujes i sa ovakvim 1min akcijama?

sto jednostavno ne uradis nesto ovako:
teorijski: recimo imaju 3 igraca, a b c.. i igrac a "posalje svoju vojsku" .. u medjuvremenu igrac b ratuje sa igracem c.
e sad zasto ne bi posle svakog poteza igraca b (ili c) proverio da li ima nekakvih akcija koje trebaju da se odrade.
ako duze vreme niko ne povuce potez, onda ce kad se neko pojavi jednostavno vojska igraca a preskoci na onu poziciju do koje bi stigla za to vreme.. jer ne bi bilo promena na terenu (niko nije povlacio poteze)
prakticno: recimo postavis tabelu poteza i aktivni potezi stoje u njoj i svaki put samo proletis kroz nju i odradis update-ovanje

mislim da bi ovo sa malo optimizacije i provere konflikata moglo da odradjuje posao sasvim ok
[ Miroslav Ćurčić @ 10.05.2006. 17:34 ] @
Ovaj problem ima identično rešenje kod većine poznatijih online igara, na primer Planetarion, StarSphere i DawnOfMyth.
Uveden je princip poteza (tick) koji je standardan tokom cele partije i najčešće iznosi 1 sat.

Tokom perioda izmedju 2 tika, igrači se loguju i šalju poteze, ali oni nemaju nikakav efekat dok se ne dogodi sledeći tik.
Kad se dogodi tik (cron-om ili web-cron-om) poziva se tvoja skripta za obradu svih poteza koja će update-ovati stanje igre.
Znači nije bitno kad je igrač uneo svoj potez, ako je sada 13:18h ili 13:57h njegov potez će se u stvari desiti u 14:00 i tu njegovu jedinicu će suparnici tek onda videti.
Naravno igrač ima mogućnost da do pred sam kraj tika poništi svoj potez bez ikakvih problema.
[ miskec @ 10.05.2006. 20:07 ] @
A to je skroz glupo. U ogameu je to reseno u real timeu bez tikova.
[ SmilieBG @ 10.05.2006. 21:19 ] @
zavisi od masine i tezine skripte :)

Javi mi se na privatnu poruku za cron, imam idealno resenje za tebe :)

Poz,
Sale