18. marts 2004 - 12:05Der 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 :-)
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.
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.
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 .-)
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.
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.
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....
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 ?!
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.
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_
Synes godt om
Ny brugerNybegynder
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.