Avatar billede lauge Nybegynder
18. marts 2004 - 12:05 Der er 18 kommentarer og
1 løsning

Cache data - men kun når der er run på

Hejsa,

Jeg har et site hvor der ved en evt. TV kampange, kan komme MEGET stort run på sitet.

Jeg kunne godt tænke mig at cache nogle af dataerne, men kun når der er performance problemer. Men hvordan kan jeg gøre dette dynamisk? Altså UDEN nogen skal holde øje med systemet.

Jeg ønsker ikke at cache siderne til hverdag!

Jeg er helt på bar bund, så hvis der nogen med gode forslag bliver jeg en glad mand :-)

På forhånd tak!
Lauge
Avatar billede burningice Nybegynder
18. marts 2004 - 12:10 #1
kan du komme med een god grund til at siderne ikke også bare kan caches til dagligt også?
Avatar billede lauge Nybegynder
18. marts 2004 - 12:15 #2
ja - når de sider og arbejder i systemet til dagligt, så skal de ikke gå f.eks. 5 min før opdateringerne slår igennem. Det er ufedt at arbejde med for den enkelte medarbejder.
Avatar billede burningice Nybegynder
18. marts 2004 - 12:19 #3
nu er det jo også sådan, at man cacher de ting som ikke opdaterer sig så tit... hvis man f.eks. har en kalender der skal renderes eller en nyhedsoversigt som maks ændrer sig hvert 5 minut, så går man ind og cacher dem.

Med asp.net er det også muligt få caching-systemet til at holde øge med hvornår noget ændrer sig, og opdatere cachen når det sker. Så der er altså ingen grund til kun at have aktiveret caching på bestemte tidspunkter... det er skam smart nok til at have kørende hele tiden uden at man bliver generet af det.
Avatar billede lauge Nybegynder
18. marts 2004 - 12:24 #4
nu er det netop indhold som ændres hver dag, og en skribenten gider ikke sider og vente 5 min på at ændringerne slår igennem.

Hvordan kan jeg få cachen til at holde øje med om en record i en database er opdateret?
Avatar billede burningice Nybegynder
18. marts 2004 - 12:28 #5
her er et eksempel på hvordan det kan gøres: http://madtechnology.net/blog/archive/2003/08/19/187.aspx
Avatar billede lauge Nybegynder
18. marts 2004 - 12:34 #6
ok - cool - nu har jeg noget at arbejde ud fra. Taxi!
Smid en svar cyberfessor....

Åååååå - jeg bruger Firebird og den kan Eksperten sq ikke lide..... Admin!
Avatar billede burningice Nybegynder
18. marts 2004 - 12:35 #7
hehe... troede at eksperten var optimeret til de fleste browsere
Avatar billede lauge Nybegynder
18. marts 2004 - 12:39 #8
nej i Morzilla så skal man nogen gange trykke F5 for at få siden udskrevet korrekt, samt nogen gange så kommer jeg til at lave et svar istedet for en kommentar, fordi Kommentar ikke længere er standard. Fx. var jeg lige ved at give mig selv point lige før - troede det svar som var i denne tråd var dit - men det var sq mit eget .-)

Høj sol og vi ses på stranden! :-)
Avatar billede lauge Nybegynder
18. marts 2004 - 12:40 #9
jeg skal vist lige huske at Acceptere :-) (solstik)
Avatar billede nielsbrinch Nybegynder
18. marts 2004 - 18:11 #10
Men hvis du ville måle hvorvidt der er 'run' på dit site eller ej, kan du gøre det i Global.asax Session_Start. Der kan du registrere hver gang der kommer en ny bruger ind på dit site. Så kan du jo måle tidspunkterne og hvis der kommer rigtig mange indenfor en kort periode, ved du der er run på :)

Det kunne f.eks. være:

1. Tilføj datotid til en liste
2. Fjern alle datotid'er fra listen som er mere end 30 minutter gamle
3. Hvis der er mere end 1000 i din liste, er der 'run' på. :)

En anden, måske endda bedre løsning, er at måle antal brugere lige nu med en gyldig session. Det er forklaret i et andet spørgsmål her på eksperten, hvordan det kan gøres.
Avatar billede lauge Nybegynder
18. marts 2004 - 18:42 #11
nielsbrinch>> jeg er med på at tælle brugerne gennem global.asax - men hvosdan vil du så tænde og slukke for cachen dynamisk??
Avatar billede nielsbrinch Nybegynder
18. marts 2004 - 18:46 #12
Det kommer jo an på hvordan dit program ellers er bygget på. Men hvis du har en GetOrder-metode, så kan den jo være implementeret to gange. Hvis der er run på, henter den fra en database, hvis der ikke er, henter den fra cachen.
Avatar billede lauge Nybegynder
18. marts 2004 - 18:48 #13
niels>> har du et kode eksempel ??
Avatar billede nielsbrinch Nybegynder
18. marts 2004 - 18:56 #14
næh
Avatar billede lauge Nybegynder
18. marts 2004 - 19:09 #15
hmmm - det fik mig til at tænke lidt videre...
En mulig løsning er; at lave 2 af hver usercontrol - en med caching og en uden, og så loade dem dynamisk, alt efter hvilken af dem man skal bruge.

Det vil jeg rode lidt videre med - tak for det....
Avatar billede nielsbrinch Nybegynder
18. marts 2004 - 19:15 #16
Jeg ville have følgende i alle data-relaterede metoder:

if (runpå) {
  // cache
}
else {
  // database
}

runpå bliver sat i Global.asax
Avatar billede burningice Nybegynder
19. marts 2004 - 12:06 #17
det er noget værre makværk... det er en ikke-skalerbar metode,... hvad bliver det næste, at du vil gå ind og se hvor meget run der er på og cache i flere eller færre minutter alt efter det ?!
Avatar billede lauge Nybegynder
19. marts 2004 - 12:12 #18
det er ikke nogen optimal løsning - men en simpel løsning der dog er meget begrænset.
Og jeg vil nok kun have brug for 2 muligheder; ingen cache eller cache i 5 min.

Jeg har ikke lige fået læst det igennem som cyperfessor har linket til - det virkede lidt stor og bøvlet. Men ser lige på det i weekenden.
Avatar billede nielsbrinch Nybegynder
21. marts 2004 - 21:08 #19
Jeg er enig, cyberfessor, men spørgsmålet går ikke på hvorvidt cache er fornuftigt i den givne situation. Spørgsmålet går på _hvordan_
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester