Jeg har lavet en samling af sider som indsamler data. Disse data placeres i en fil som så læses ind i en database. Men denne indlæsning af eventuelle data fra filen til databasen skal ske hver time (f.eks.). Dvs. at jeg skal have en slags timer til at køre.
Men her knækker filmen lidt for mig. Kan det lade sig gøre at have sådan et baggrundsjob til at køre uafhængigt af de sider som ens asp.net applikation består af? I så fald hvordan bliver det styret (startet) -er det IIS?.
Har aldrig rigtig lavet noget med asp.NET - men ved at hvis man med "normal" asp skal lave det, så er man nød til at bruge windows scheduled task (planlagte opgaver), som så kører f.eks. et vb-script (*.vbs), som indeholder koden til den planlagte funktion
umiddelbart burde der ikke være noget problem i at starte en ny tråd i din Application_Start() event i global.asax og så holde en reference til den i en application-variabel.
Det er dog bare min umiddelbare bud, og skal selvfølgelig tages med et gran salt da jeg ikke selv har haft brug for det eller afprøvet det.
Ved at bruge global.asax vil det typisk gå ud over den enkelte bruger som trigger en event.
Jeg skal selv til at lave det samme som dig, er dog ikke kommet frem til en løsning, men jeg ved hvad jeg vil prøve...
Jeg vil udnytte .net cache. Man kan oprette en cache object som skal udføre en event efter et bestemt interval. denne event skal så lave dine ønskede ting og refreshe cache objectet, denne metode tror jeg vil virke.
Men, et problem kunne være at den ikke opdatere cache object når der ikke er aktivitet i et stykke tid på sitet, jeg tror dog det vil kunne lade sig gøre at lave et andet cache object som skal trigge en event hver 10 minut, som skal kalde en side "keepalive.aspx" eller lign.
Du kan måske bruge mine ideér til at komme lidt videre
christian>> hvorfor skulle det gå ud over den enkelte bruger ?! det kommer da helt an på hvilke events man bruger... application_start bliver jo kun udført EEN gang, nemlig når applicationen startes... jeg tror du tænker på application_request, eller session_start du tænker på.. det er rigtigt at de triggers noget oftere
christian>> det er jo heller ikke det han skal... han skal bruge application_start til at starte hans tråd, evt. med en timer som trigger sig selv hver time.
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.