SQL uitvoeren en pagina's toch laden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Alex

Alex

24/03/2007 00:12:00
Quote Anchor link
Hoi,
Ik heb geen beschikking over cronjobs,
en elk uur voert mijn site een groot aantal scripts uit waarbij hij langs alle gebruikers gaat.

hierdoor komt het wel eens voor dat de pagina dan niet laadt, omdat hij er te lang over doet om de scripts uit te voeren denk ik.
is er een manier om de pagina te laten laden terwijl de scripts nog bezig zijn?

Grtz,

Alex
 
PHP hulp

PHP hulp

22/12/2024 09:49:07
 
Joren de Wit

Joren de Wit

24/03/2007 00:22:00
Quote Anchor link
Wat ik vragen wat voor scripts je dan elk uur uitvoert?
 
Alex

Alex

24/03/2007 00:27:00
Quote Anchor link
hij gaat via een while langs alle gebruikers om hun rank te updaten,
en via een andere query betaald hij ze elk half uur afhankelijk van hoeveel workers ze op bijvoorbeeld hun goud mijn of kogel fabriek hebben..

vandaar..

volgens mij heeft kings of chaos wel zo'n soort systeem waarbij hij de pagina laadt terwijl wel de ranks van alle gebruikers worden geupdate..
 
Manaus

Manaus

24/03/2007 00:30:00
Quote Anchor link
zou het niet beter zijn, als je gewoon de gegevens van de gebruiker update als ze inloggen?:)
 
Alex

Alex

24/03/2007 00:33:00
Quote Anchor link
heb ik aan gedacht, maar ranks kun je sowieso niet uitstellen, aangezien de attack page up-to-date moet blijven, ook als een gebruiker er een dag niet is.
ook moet iedereen op hetzelfde moment hun soldaten krijgen
(die query doet hij eens per dag)
anders zou je iemand aan kunnen vallen terwijl hij eigenlijk veel meer soldaten hoort te hebben.

allemaal van dit soort dingen zorgen ervoor dat het wel nodig is om het te doen zoals ik het nu doe..
 
Mebus  Hackintosh

Mebus Hackintosh

24/03/2007 00:46:00
Quote Anchor link
Mischien met een AJAX request? Je laad de pagina dan als ware eigenlijk appart..

Anders weet ik het ook niet
 
Alex

Alex

24/03/2007 01:05:00
Quote Anchor link
hoe zou ik dat moeten doen dan?

ik heb totaal geen ervaring met ajax :P vandaar..
 
Nick Mulder

Nick Mulder

24/03/2007 08:53:00
Quote Anchor link
Die while loop gebruikt 100% van je CPU, gebruik dat dus vooral niet.
Update het gewoon als ze inloggen...
 
Joren de Wit

Joren de Wit

24/03/2007 10:52:00
Quote Anchor link
Quote:
aangezien de attack page up-to-date moet blijven
Dat is dus alleen van belang als de attack page opgevraagd wordt. Met andere woorden, pas op dat moment voer je dus de query/queries uit die controleren en er eventueel voor zorgen dat deze pagina up-to-date is.

Quote:
ook moet iedereen op hetzelfde moment hun soldaten krijgen
(die query doet hij eens per dag)
anders zou je iemand aan kunnen vallen terwijl hij eigenlijk veel meer soldaten hoort te hebben
Hier precies hetzelfde. Dit is pas van belang zodra iemand aanvalt/aangevallen wordt. Voer deze query dus pas uit zodra dit van toepassing is.

Kortom, het is echt niet nodig om deze queries elk half uur uit te voeren. Kijk bijvoorbeeld naar 's nachts, hoeveel mensen zijn er dan online om te spelen? Dan is het waarschijnlijk ook niet nodig om die gegevens te updaten.
 
Alex

Alex

24/03/2007 11:53:00
Quote Anchor link
ik heb spelers van overal ter wereld, elk uur is er minstens 1 aanval, (ja, zelfs om 3 uur 's nachts)
het zou dus niks uitmaken of hij het alleen dan update, of elk uur..

verder weet ik dat het kan door kings of chaos.. daar doet de server er gewoon wat langer over om te updaten (ranks update duurt 5 minuten) maar de ranks van alle 50,000 spelers worden wel geupdate,
en de pagina's worden ook gewoon geladen terwijl hij update..
 
Alex

Alex

25/03/2007 16:12:00
Quote Anchor link
BuMp
 
Martijn

Martijn

26/03/2007 10:57:00
Quote Anchor link
@Blance:

Dat werkt dus NIET, je kan niet pas updaten als iemand inlogd en/of de pagina aanroept, sinds je ook te maken hebt met de andere spelers die geupdate gegevens nodig hebben.

Ik weet ook niet zo goed wat een mogelijke oplossing is. Omdat je geen cronjobs kan gebruiken zal je iets moeten proberen met een 'tijd' script op een database. Dat je dus zeg maar elke keer controleerd wanneer er is geupdate mocht dat langer dan een uur zijn, dan roept de server jouw update script aan.
 
Marvin S

Marvin S

26/03/2007 11:14:00
Quote Anchor link
Als iemand een actie uitvoert of een werker naar de goudmijn stuurt IS dit toch al geupdate of niet? en als iemand weer zijn werker weghaalt IS dit toch al veranderd in de database?en dat het kan klopt..

maar die server waar jij het over hebt zal wel cronjobs kunnen gebruiken..


en op de andere..


en als jij in 1 script de complete database wilt updaten ja dat gaat wel even duren.. is het niet verstandiger om dit op te splitsen in onderdelen die elkaar aanroepen als ze zelf zijn gefinished..

kzet het maar veel simpeler dan het is hoor maar ik bedoel het volgende principe:

eerst ga je updaten ja noem maar wat..

de health van de spelers.. als die klaar is het goud.. dan blablabla
dan krijg je een ketting van scripts die het zooitje updaten

snapje?

dan heb je kortere en waarschijnlijk gaat het dan ook veel sneller.. dingen die de gebruikers niet direct zien of nodig hebben.. bewaar je voor het laatst.. maar uiteindelijk is alles geupdate zonder dat alles hangt of dat iedereen moet wachten..
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
 
Klaasjan Boven

Klaasjan Boven

26/03/2007 11:21:00
Quote Anchor link
Ik kan mij voorstellen dat jij de queries / tabbelen niet helemaal optimaal gemaakt hebt.
Kijk daar eerst eens naar, dat scheelt je namelijk altijd weer
 
Frank -

Frank -

26/03/2007 11:35:00
Quote Anchor link
Quote:
daar doet de server er gewoon wat langer over om te updaten (ranks update duurt 5 minuten) maar de ranks van alle 50,000 spelers worden wel geupdate,

1) Een query van 5 minuten voor 50.000 records, dat is niet overdreven snel. 'Erg langzaam' is een beter begrip.
2) Wie heeft deze 50.000 gegevens op dat moment nodig? Het lijkt mij sterk dat er iemand is die alle 50.000 records langs gaat lopen.
3) Ik zou in PostgreSQL triggers inbouwen om de de benodigde records, en dat zijn er geen 50.000, bij te werken.
4) Voor dit soort zaken heb je nooit cron-jobs nodig. punt.
 
Marvin S

Marvin S

26/03/2007 11:35:00
Quote Anchor link
@klaasjan
ja dat ook zeker weten
daarom snapte ik dit ook niet helemaal
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.