Update per uur, beste manier?
tijdje geleden dat ik hier nog zat :-)
Ik heb een vraagje.
Ik ben met een script bezig en dit zou elk uur iets moeten updaten in de db.
Nu als het script 2 uur niet wordt opgevraagd zou het wel 2 maal moeten updaten en niet achterlopen.
ik zat te denken aan GET_LOCK en RELEASE LOCK...iemand een beter idee misschien? en aangezien ik niet helemaal volledig deze functies snap, kan iemand me ze goed uitleggen? (heb al gezocht op internet maar ik vind niet meteen een degelijke (nederlandse) uitleg)
Waarom niet gewoon berekenen hoelang het geleden was bij de laatste update. Je hebt de info pas nodig immers als je de website bezoekt.
cron?
weetje zekker dat het elk uur geupdate moet worden ?
Ricardo schreef op 19.06.2009 11:04:
cron?
Waarom roept iedereen bij events met tijden altijd direct cron terwijl dit 99% van de tijd helemaal niet nodig is?
@TS kun je iets meer over je situatie uitleggen zodat er iets specifieker geantwoord kan worden?
Tikkes schreef op 19.06.2009 09:43:
Kortom, het is prima als de database geupdate wordt op het moment dat een bezoeker op je site komt, zolang maar gekeken wordt hoeveel uur het geleden is sinds de laatste update.Nu als het script 2 uur niet wordt opgevraagd zou het wel 2 maal moeten updaten en niet achterlopen.
Om dat te bepalen zul je uiteraard het tijdstip van de laatste update op moeten slaan en vervolgens zoiets (in MySQL) gebruiken om het aantal uur te bepalen:
Natuurlijk zul je deze query moeten aanpassen naar je eigen situatie. Tevens zou het mogelijk zijn om dit geheel direct in een UPDATE query te verwerken, maar ik ga ervan uit dat je daar zelf wel uitkomt?
Als je db-model goed zit, zou dit volgens mij niet nodig moeten zijn.
Maar ik kan me uiteraard vergissen; ik weet niet precies wat je probeert te bereiken.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Jacco schreef op 19.06.2009 11:09:
Waarom roept iedereen bij events met tijden altijd direct cron terwijl dit 99% van de tijd helemaal niet nodig is?
@TS kun je iets meer over je situatie uitleggen zodat er iets specifieker geantwoord kan worden?
Ricardo schreef op 19.06.2009 11:04:
cron?
Waarom roept iedereen bij events met tijden altijd direct cron terwijl dit 99% van de tijd helemaal niet nodig is?
@TS kun je iets meer over je situatie uitleggen zodat er iets specifieker geantwoord kan worden?
omdat cron gewoon zwaar relaxed is :)
@Ricardo: en veel problemen kan geven. Je hebt daar namelijk geen zicht op. Als je bij iedere pageload gewoon controleert of het tijd is om iets aan te passen, is dat veel beter. Overigens gebeurt het dan ook nog een keer in het zicht, want een bezoeker zal dan vaker fouten te zien krijgen stel dat het mis gaat.
als een bezoeker 2 uur afwezig zou zijn (of langer) zou dit moeten aangepast worden en krijgt hij dus 2 credits bij (in dit geval).
ik neem dus aan (gezien de reacties) dat die GET_LOCK, RELEASE_LOCK een slecht idee is?
@Jacco: dit is zo een beetje de uitleg, hoe zou jij het doen?
@Blanche: Dit lijkt inderdaad een goed idee om het zo te doen, bedankt.
@Ricardo: Cron is relaxed maar zoals Jezpur zegt; het kan veel problemen geven en dit wil ik uiteraard niet hebben. Dan heb ik liever een groter maar veiliger en degelijker script want uiteindelijk gaat t niet om hoe kort je script is maar om hoe goed het in elkaar steekt.
bumpje
Gewijzigd op 01/01/1970 01:00:00 door John Doe
daarmee bedoel je?
Als jou script gewoon deugt met goede controles of waardes kloppen en alleen dan verder gaan, kan er niks mis gaan?
Jacco schreef op 19.06.2009 11:09:
Waarom roept iedereen bij events met tijden altijd direct cron terwijl dit 99% van de tijd helemaal niet nodig is?
@TS kun je iets meer over je situatie uitleggen zodat er iets specifieker geantwoord kan worden?
Ricardo schreef op 19.06.2009 11:04:
cron?
Waarom roept iedereen bij events met tijden altijd direct cron terwijl dit 99% van de tijd helemaal niet nodig is?
@TS kun je iets meer over je situatie uitleggen zodat er iets specifieker geantwoord kan worden?
Ik vind cron-jobs ideaal werken.
1x instellen en nooit meer naar kijken.
Waarom bij ieder bezoek (1.000.000 per dag) kijken of het nodig.
Of 31.000.000x kijken in de database, vergelijken etc ÓF 1 cronjob laten runnen.
Waarom zou je geen cronjob gebruiken? Wat zijn de argumenten tegen?
Ja... het kan ook met puur PHP (als het nodig is), maar waarom wachten?
Tikkes schreef op 21.06.2009 09:20:
Wat is nu nog je probleem?bumpje
Ricardo schreef op 21.06.2009 10:39:
En wat nu als je cron om wat voor reden dan ook een keer niet uitgevoerd wordt? Denk bijvoorbeeld aan een server die 's nachts tijdelijk down bleek te zijn? Juist, dan mis je dus 1 update terwijl die wel plaatsvind als je de controle pas uitvoert zodra de gebruiker de pagina bezoekt. Als jou script gewoon deugt met goede controles of waardes kloppen en alleen dan verder gaan, kan er niks mis gaan?
Kortom, gebruik cron jobs alleen als je het echt daadwerkelijk nodig hebt. Dus bijvoorbeeld als je op een bepaalde tijd een e-mail wilt versturen. Maar voor de situatie in dit topic is het niet nodig...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit