Update per uur, beste manier?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tikkes C

Tikkes C

19/06/2009 09:43:00
Quote Anchor link
Hoi iedereen

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)
 
PHP hulp

PHP hulp

22/12/2024 09:33:35
 
Jurgen assaasas

Jurgen assaasas

19/06/2009 10:20:00
Quote Anchor link
Waarom niet gewoon berekenen hoelang het geleden was bij de laatste update. Je hebt de info pas nodig immers als je de website bezoekt.
 
- Ricardo -

- Ricardo -

19/06/2009 11:04:00
Quote Anchor link
cron?
 
RvW Of toch niet

RvW Of toch niet

19/06/2009 11:09:00
Quote Anchor link
weetje zekker dat het elk uur geupdate moet worden ?
 
Jacco Engel

Jacco Engel

19/06/2009 11:09:00
Quote Anchor link
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?
 
Joren de Wit

Joren de Wit

19/06/2009 11:30:00
Quote Anchor link
Tikkes schreef op 19.06.2009 09:43:
Nu als het script 2 uur niet wordt opgevraagd zou het wel 2 maal moeten updaten en niet achterlopen.
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.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT
  HOUR(TIMEDIFF(NOW(), last_update)) AS aantal_uur
FROM
  tabelnaam

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?
 
Emmanuel Delay

Emmanuel Delay

19/06/2009 11:31:00
Quote Anchor link
Ik ben er niet van overtuigd dat er een goede reden zou bestaan dat iets om de twee uur moet worden aangepast.

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
 
- Ricardo -

- Ricardo -

20/06/2009 06:49:00
Quote Anchor link
Jacco schreef op 19.06.2009 11:09:
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 :)
 
Jesper Diovo

Jesper Diovo

20/06/2009 09:15:00
Quote Anchor link
@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.
 
Tikkes C

Tikkes C

20/06/2009 11:37:00
Quote Anchor link
laten we zeggen dat een bezoeker per uur 1 "credit" krijgt...
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.
 
Tikkes C

Tikkes C

21/06/2009 09:20:00
Quote Anchor link
bumpje
 
John Doe

John Doe

21/06/2009 09:31:00
Quote Anchor link
Een simpele check-constraint doet wonderen. Is tegen mij ooit gezegt met een zelfde soort geval.
Gewijzigd op 01/01/1970 01:00:00 door John Doe
 
Tikkes C

Tikkes C

21/06/2009 09:38:00
Quote Anchor link
daarmee bedoel je?
 
- Ricardo -

- Ricardo -

21/06/2009 10:39:00
Quote Anchor link
Even tussendoor, waarom zou cron veel problemen kunnen geven?

Als jou script gewoon deugt met goede controles of waardes kloppen en alleen dan verder gaan, kan er niks mis gaan?
 
Eddy E

Eddy E

21/06/2009 11:13:00
Quote Anchor link
Jacco schreef op 19.06.2009 11:09:
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?
 
Joren de Wit

Joren de Wit

21/06/2009 11:15:00
Quote Anchor link
Tikkes schreef op 21.06.2009 09:20:
bumpje
Wat is nu nog je probleem?

Ricardo schreef op 21.06.2009 10:39:
Als jou script gewoon deugt met goede controles of waardes kloppen en alleen dan verder gaan, kan er niks mis gaan?
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.

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
 



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.