[SQL] Vertraagd Queries uitvoeren?

Pagina: 1
Acties:

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
Hoi,

Stel, op een website heb ik een soort van who's online script gemaakt.
Dit script insert het ip van een bezoeker en de tijd van het bezoek. Als de bezoeker binnen een bepaalde tijd de site nogmaals bezoekt dan wordt de tijd van het bezoek geupdate. Het script dat door de bezoeker wordt uitgevoerd verwijderd ook alle records uit de table van bezoekers waarvan de tijd van het laatste bezoek met 5 minuten of meer verstreken is. Nu werkt dit op zich goed maar ik vroeg me toch het één en ander af.
Is het mogelijk om in het script dat een bezoeker draait direct een querie naar de MySQL database te sturen met het verzoek deze na een bepaalde tijd uit te voeren? Op deze manier zou je bijvoorbeeld iets kunnen sturen als "DELETE FROM bezoekers WHERE ip='$ip' DELAY 300" waneer je de query met 300 seconden vertraging wilt laten uitvoeren. Dit zou nl. in verband met een ander projectje van mij erg handig zijn. In de MySQL documentatie kon ik het niet vinden maar misschien dat ik in de bijna 1000 pagina dikke pil iets over het hoofd heb gezien.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Wat is er mis met een cronjob / Taakplanner of een Session_OnEnd gebruiken?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
gorgi_19 schreef op 09 July 2003 @ 01:26:
Wat is er mis met een Гвыотое / копьютмрые of een Гплекту_ПюЖи gebruiken?
Ok, ik denk dat ik maar eens wat documentatie ga lezen.
Ik moet wel even vermelden dat ik allen de beschikking heb tot een php/mysql zonder telnet e.d.. Zijn deze mogelijkheden dan ook nog een optie voor mij?

/edit

goed, ik ben weer wat beter op de hoogte:
Ik heb dus geen beschikking tot cronjobs of een taakplanner. Session_OnEnd is volgens mij alleen in ASP mogelijk en ik was dus vergeten te melden dat ik PHP gebruik.

[ Voor 24% gewijzigd door Maxonic op 09-07-2003 01:58 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
In PHP zal je ook wel de mogelijkheid hebben om iets uit te voeren bij een Session-OnEnd event.

https://fgheysels.github.io/


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

whoami schreef op 09 July 2003 @ 09:05:
In PHP zal je ook wel de mogelijkheid hebben om iets uit te voeren bij een Session-OnEnd event.
Als je iets weet.. graag :P
Ik moet wel even vermelden dat ik allen de beschikking heb tot een php/mysql zonder telnet e.d.. Zijn deze mogelijkheden dan ook nog een optie voor mij?
Dan moet je ff je provider bellen... Al moet je wel een aardige relatie of een flinke account hebben willen ze je zomaar een cronjob laten installeren.

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
Bosmonster schreef op 09 July 2003 @ 09:25:

Dan moet je ff je provider bellen... Al moet je wel een aardige relatie of een flinke account hebben willen ze je zomaar een cronjob laten installeren.
Dat heb ik wel, maar dat wil ik eigenlijk niet. :)
Het is nl. de bedoeling dat het projectje zonder problemen ook bij andere mensen kan draaien die geen goede relatie met hun hosting-provider hebben :)

Maargoed, ook ik heb me intussen blauw gezocht aan een manier om code uit te voeren na het beïndigen van een sessie. (en dat natuurlijk als de user niet zelf een pagina laad) maar ik ben bang dat het niet zo makkelijk zal gaan :'(

Misschien iemand nog andere ideën? :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

if everything else fails... kun je een transparant gifje laden via een php pagina, die pagina eerst een delete query laten uitvoeren op alles ouder dan x-seconden, en vervolgens het gifje laten zien. Vertaagt de gewone pagina niet, maar je bent wel je oude zooi kwijt :) Niet de netste methode denk ik, maar t werkt wel :)

Exact expert nodig?


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Kun je natuurlijk ook op je eigen fileserver (als je dit hebt) een cronjob toevoegen die elke 5minuten die php-script aanroept bij de hosting provider. Wel lekker fout, maar werkt vast wel :-)

  • Icheb
  • Registratie: Augustus 2001
  • Laatst online: 11-08 13:24
Tis niet de schoonste/mooiste methode...
Ik heb hier een linux bak staan, daarop zit een php'tje in een cronjob, in mijn geval is het een backup script waarbij zo min mogelijk via FTP mag plaatsvinden :D
Op de server zelf staat een script die alle files inpakt (i love .tar.gz) en een sql dump maakt en dit in een bepaalde dir zet, dan download mijn lokale script ze, waarna mijn lokale script een onderdeel van het andere script op de server start (lang leve lynx) om alles wat remote staat (dus totale backup + sql dump) weer te wissen...

Dit is dus ongeveer dezelfde methode als alienfruit hierboven omschrijft :D
Het enige probleem is dat het niet werkt als mijn internetverbinding dood is...

edit :
Ik blijf dit topic even volgen, want ik ben voor een site aan een module bezig waarbij users iets uploaden dmv een form, daarna wordt het op de pagina's erna verwerkt, maar als de user gewoon weggaat, blijft het er allemaal staan, 't begint een beetje veel te worden met deze methode 8)7 :X
Een delayable .php script zou perfect zijn :D

[ Voor 21% gewijzigd door Icheb op 09-07-2003 10:58 ]

sebsoft.nl


  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
Tja, ik kan moeilijk een project aan een klant verkopen met de mededeling dat hij slechts php/mysql nodig heeft, owja, en een eigen linux bak die cronjobs draait :)
Misschien bij één klant, maar echte goede marketing voor je product is het niet...

Ik neem bij deze dus maar aan dat het met hout en spijkers alleen niet lukken gaat. Jammer.

Net zag ik dat MySQL iets kent als de functie INSERT DELAYED dus ik werd al even blij, maar helaas is dat iets heel anders... ;(

  • mocean
  • Registratie: November 2000
  • Laatst online: 15-08 04:26
pseude-cron is wel leuk. Een soort crond PHP implementatie, voor als je geen cron hebt.

Geen reclame: Ik zit zelf bij www.phpwebhosting.com en die geven full ssh toegang en o.a. cronjobs voor 9,99 / maand!

Koop of verkoop je webshop: ecquisition.com


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Wat is er mis om (bij elke pageview!) alle bezoekers die langer dan x minuten niks gedaan hebben te verwijderen?

Overigens wordt 20 minuten over het algemeen gezien als de 'maximale' tijd die tussen twee pageviews mag zitten om het bij dezelfde sessie te rekenen. Meer dan 5 dus.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

OFF TOPIC:

Bij ASP: de function Session_OnEnd wordt niet gegarandeerd uitgevoerd !

er zijn situaties mogelijk waarbij het niet werkt; en ook ben je in sommige gevallen
als je Session variabelen al kwijt op het moment dat de Session_OnEnd aangeroepen
wordt (ofwel: soms wel, soms niet) ...

/OFF TOPIC

Ik denk dat het in PHP het makkelijkst is (als je geen cronjob hebt) om gewoon op je 'default page' inderdaad een DELETE query te runnen welke alle entries ouder dan NU - 30 minuten verwijderd ....

[ Voor 5% gewijzigd door SKiLLa op 09-07-2003 15:54 . Reden: typo's ]

'Political Correctness is fascism pretending to be good manners.' - George Carlin

Pagina: 1