udføre php hvert 10. sek?

Tags:    php javascript

<< < 12 > >>
jeg har gennem hele dagen rodet med at få et php script til at kører hvert 10. sekund.

rundt på nettet fandt jeg, at jeg f.eks. kunne bruge:
Fold kodeboks ind/udPHP kode 
og at den så ville kører scriptet igen.
Men da jeg brugte det, refreshed den godt nok siden, men den kørte ikke koden igennem igen.
Så ville hører om nogen har en idé om hvordan jeg ellers kan gøre dette i entet PHP eller javascript?

Ha' en god dag, og på forhånd tak!

MVH
Kasper Torp



15 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Du kan jo køre følgende hvert 5. minut via cron:
Fold kodeboks ind/udKode 


Det gentager sig hvert 10. sekund i fem minutter...hvorefter scriptet bliver kørt igen :-)

Tag så også højde for, hvor lang tid 'doStuff()' tager og træk det fra de 10 sekunder, der skal soves.



Hvis vi ved, at der hvert 10. sekund kommer ét point mere på, så behøver man ikke at spørge serveren, om det er sket...det kan man jo gå ud fra og så bare tilføje selv...måske tjekke en gang hvert 5. minut.

At lave 100 enkelte opdateringer er meget tungere end at lave 100 i ét go, og håndteringen af web, database, memcache, sessions, parsing af HTTP, parsing af SQL...den slipper man for.

Og hvordan opdaterer du de klienter, som ikke er online ?

På komogvind.dk laver vi så meget som overhovedet muligt på serveren. Det minimerer også fejlkilderne. Serverne har vi kontrol over, det har vi ikke i samme grad med klienterne.



Er det bare mig, eller kan det rent faktisk løses med noget ajax i stedet for? På den måde kan du bare få ajax til at kalde scriptet og derefter behandle din returværdi med javascript?


Ikke hvis det skal ske, mens brugeren er offline.
Det vil heller ikke være optimalt at alle brugere hvert 10. sekund over nettet beder om at blive "opgraderet", hvis det kan ske direkte på serveren.


Er jeg ikke helt enig i. Det vil tage en del belastning af serveren hvis størstedelen af behandlingsarbejdet kan foregå ved klienten. Kan selvefølgeligt godt se det ikke kan lade sig gøre, hvis det også skal ske når brugeren er online. Ville det dog her ikke være muligt at beregne hvor meget brugeren har optjent i den tid personen har været offline? HVis man gemmer et timestamp hver gang man sender en forespørgsel, kan man jo blot sammenligne det sidste timestamp med den nuværende tid når en bruger logger ind eller er aktiv på serveren igen ;-)



Kan du ikke sætte et cronjob op på serveren, og sætte det til at køre den valgte side/kode hver 10 sekund?



Kan du ikke sætte et cronjob op på serveren, og sætte det til at køre den valgte side/kode hver 10 sekund?


Har pt en chronejob der kører hvert 5.minut. men da min udbyder ihvertfald ikke vil lade mig gører det oftere en hvert 5.minut.
desuden føler jeg mig overbevist om at chronejob har et max på hvert minut, (kan godt være mig der tager fejl).





Hvis din udbyder ikke vil lade dig køre dem, så tror jeg ikke du kan lave sådan en funktion til at loade hver 10 sek, ihvertfald ikke med php så vidt jeg ved.



Hej Kasper,

Hvert 10. sekund er RET ofte - hvad skal det bruges til som er så krævende? :)

Mvh.

Kasper (TSW)



Hej Kasper,

Hvert 10. sekund er RET ofte - hvad skal det bruges til som er så krævende? :)


er igang med for sjov at programmere et lille php spil med en god ven.
og vi ønskede at et script der kørte ca. hvert 10 sekund, som er hvor lang tid vi ønsker der skal gå før man får 1 extra energi point.
jeg ved man kan lave mange andre smarte ting som gør det samme. kender et jo fra andre spil som Travian osv. dog er jeg lige så blankt som et hvidt stykke papir, så snart vi bevæger os ud i andet end, html, php og css :)



Du kunne også være lidt smart og tjekke hvornår scriptet sidst opdaterede i en PHP fil, og så "modde" (dvs med % operatoren) tallet minus den nuværende tid med 10 sekunder...

Så kan du udregne hvor mange energi points der skal ligges til, og så ellers sætte tiden hvor scriptet har opdateret og lade det være det.

Men du skal nok sætte opdateringstiden så hurtigt som muligt for at undgå flere samtidige sideindlæsninger ligger energipoint til samtidigt. (Det kommer jo så igen an på trykket på siden).






Er det bare mig, eller kan det rent faktisk løses med noget ajax i stedet for? På den måde kan du bare få ajax til at kalde scriptet og derefter behandle din returværdi med javascript?
Det lyder for mig som om det da i hvert fald er en brugbar løsning :-)



<< < 12 > >>
t