| Time event server | ||
|---|---|---|
|
bostjan
17. maj 2012 16:59:32
Pridružen od: 31. jul 2008 643 objav 689 30 9 |
#1
Mogoče kdo pozna kakšen "time event server" (niti ne vem kako se tej zadevi pravi). Rad bi, da nekako sporočim kateri event se naj ob določenem času sproži. Recimo primer kako naj bi delovalo je igra travian. Tam ko napadeš sosednjo vas ti pove da bo bitke ob XX času konec. Sedaj v tem primeru bi jest rekel temu serverju ob XX uri mi sproži event "endBattle" z IDjem bitke 5. No če kdo karkoli takega pozna bom zelo hvaležen. Ali pa samo idejo kako bi se to imenovalo in kako naj iščem. Cron ni ql ker deluje na minute, jest bi rabil sekunde. |
|
|
technolog
17. maj 2012 17:17:21
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#2
Cron enostavno ni namenje za take stvari. Pravilna rešitev je, da si hraniš čas konca eventa in ob vsakem pageloadu preveriš, če je kakšen pretečen event še neobdelan. In če je, najprej obdelaš event, potem šele nadaljuješ z običajnim delom pri loadu strani. To je idealen način, ker za skripto ne bo razlike, če se bitka konča šele deset sekund kasneje, če prej ni bilo nobenega pageloada. Baze imajo zelo učinkovito narejeno to, da ugotoviš, če je še kak neobdelan event, le pravilen index moraš postavit, pa imaš odgovor v roku delčka milisekunde, ki ne upočasni pageloada čisto nič. Pa še moral boš pazit, da ti ne bosta dva pageloada začela obdelovat isti event, ker bo to pomenio, da boš izvedel dvojni napad/akcijo. Za to boš moral uporabit transakcije, ki jih ponuja večina današnjih DBMSjev. Z linuxom že 7 let. Pro web development.
|
|
|
bostjan
17. maj 2012 18:23:37
Pridružen od: 31. jul 2008 643 objav 689 30 9 |
#3
Ja to je tudi ena izmed idej toda sem upal da obstaja kakšna prov namenska zadeva. Bom jutri na šihtu še malo pregledal kaj pravi stric googlu. Drugače bom pa spet odprl Visual Studio in bo C# power :D |
|
|
technolog
17. maj 2012 18:28:55
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#4
Ena od idej je, da ti na strežniku v ozadju lavfa daemon (google it), kateremu sporočaš dogodke, ta pa kliče ustrezne stvari ob danem času. Z linuxom že 7 let. Pro web development.
|
|
|
bostjan
17. maj 2012 18:32:03
Pridružen od: 31. jul 2008 643 objav 689 30 9 |
#5
Ja sem ravno ko sem post napisal šel to gledal. Verjetno bo to končna rešitev. Nek PHP daemon, ki bo preverjal vse zadeve. |
|
|
metallon
17. maj 2012 20:14:39
Pridružen od: 28. apr 2012 362 objav 326 70 8 |
#6
Glej zadevo malo bolj enostavno. Če jaz tebe napadem .... a je važno da se stvar izvede, če ni nobenga na strani? Ko pa pride .. nekdo od naju nazaj, pa skripta enostavni preveri, če je kakšen dogodek potrebno izvesti in ga izvede. |
|
|
technolog
17. maj 2012 20:19:33
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#7
Točno to sem jaz napisal:
Z linuxom že 7 let. Pro web development.
|
|
|
metallon
17. maj 2012 20:23:51
Pridružen od: 28. apr 2012 362 objav 326 70 8 |
||
|
bostjan
18. maj 2012 07:30:35
Pridružen od: 31. jul 2008 643 objav 689 30 9 |
#9
No to je bil samo primer :D Fora je da time event mora preverit konec dogodka, da vse akterje obvesti na mail/sms. Saj to je samo primer in se ne bo uporabljalo za igre ;) |
|
|
technolog
18. maj 2012 08:05:11
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#10
V tem primeru, če je treba obvestit prek maila/smsja, je pa vprašanje, koliko je še tolerančen zamik. Če je to ena sekunda, potem druge rešitve kot daemon ni. Če je toleranca do ene minute, potem lahko pa uporabiš cron, poleg rešitve v #2 (sepravi kar je prej - pageload ali pa proženje crona). Z linuxom že 7 let. Pro web development.
|
|