08. august 2006 - 15:07Der er
7 kommentarer og 1 løsning
Insert funktion som kun indsætter hvis de ikke allerede findes
Er igang med at lave en windows service som hvert 15. min henter et RSS feed og skal så gemme de 10 nyeste feed's
Den umiddelbare nemme løsning ville selvfølgelig bare være at jeg slettede de 10 feeds jeg allerede havde gemt på databasen og derefter lagde de nye ind.
Men syntes der er lidt for meget spild idet, et RSS feed ikke opdateres så ofte og der derfor kun vil være enkelte ændringer ved hver opdatering.
Mit spørgsmål er derfor, Kan jeg lave en sql sætning som ved en Insert checker om rss feeds'ne allerede findes på databasen, hvis de ikke gør det, skal de indsættes ellers skal den ikke gøre noget.
Og til sidst skal jeg have slette alle rss feeds der er ældre en de 10 nyeste, jeg har gemt en datetime hvor pubDate står.
Er gået igang med en løsning hvor jeg kalder en MAX() på pubDate værdien hvor jeg så gerne skulle få pubdate på det nyeste feed, Så er det ellers meningen at jeg holder det op imod de feeds jeg lige har downloaded, så skulle jeg gerne kunne slette de feeds som allerede findes i databasen, og derefter lave en INSERT på de nye feeds.
Så skal jeg selvfølgelig lige have fundet udaf hvordan jeg får slette de feeds på databasen der er ældre en de 10 nyeste.
Fordi jeg ikke tror jeg kan, hele problemstillingen er at jeg skal bruge de rss feeds på en hjemmeside, men da det tager for langtid at hente dem ned, selv hvis jeg slog cache funktionen til, så gav det stadig dårlig performance hvert 10-15 min. afhængig af hvor tit jeg skulle opdatere feeds.
Nu er jeg så igang med at lave en windows service der henter feeds'ne for mig og hjemmesiden skal så bare nøjes med at hente det fra databasen. Hvis du har et bedre forslag må du meget gerne fortælle det. Koder i C# og asp.net 2.0
jeg snakker ikke om at cache i din web app men om at cache i din opdaterings service
når servicen starter op læser den MAX pubdate fra databasen
hvert kvarter kører service og: henter et antal feeds sammenligner deres pubdate med det i memory INSERT'er de feeds som er nyere DELETE'er gamle feeds fra DB (se SQL ovenfor) opdatere pubdate i memory med den nyeste fra de gemte feeds
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.