24. august 2006 - 12:10Der er
14 kommentarer og 1 løsning
Masse afsendelse af mail
Hej Jeg er ved at lave en webapplikation i c# der skal bruges til at sende mails ud til brugere der har registreret sig. Deres mailadresser har jeg liggende i en SQL database. Når mailsene skal afsendes sætter jeg en loop igang der tager én mailadresse af gangen og sender den. Det virker for så vidt fint nok. Men da jeg testede med 50 mails tog det temmeligt lang tid og jeg vil derfor helt sikkert støde i et problem med "time out" på serveren, sådan at mange ikke modtager min mail.
Hvordan sikrer jeg at dette ikke sker? Det skal lige siges at jeg ikke har mulighed for at ændre på "time out"-indstillingerne.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Der er to problemer med denne fremgangsmåde (som jeg desværre ikke fik skrevet om i det indledende spørgsmål). For det første skal jeg merge modtagerens navn ind i mailen. For det andet holder jeg styr hvilke mails der ikke når frem med en funktion der returnerer resultatet for hvert enkel mail. Det kan jeg ikke umiddelbart se kan lade sig gøre på den måde I foreslår.
Kan du ikke lave en webservice eller lign som sender emails asynkront. Denne webservice kan din webside så kalde. Eller hvis du bare starter det op i en tråd på din webside om det også vil fremkalde en timeout. Det er jeg faktisk ikke helt klar over, men kunne være det var løsningen.
Arne hvad sker der egentlig på iis når man starter en tråd op? Sender den response af sted og tråd kører videre server site, eller venter den på tråd er kørt færdig og så sender response, elle rmå man slet ikke starte en tråd op?
Ja jeg er klar over i en windows app fingere det sådan. Er bare i tvivl om, om IIS har nogle restriktioner med tråde osv. Og om tråde dør sammen med den tråd der sender response osv osv. Der bliver vel startet en ny tråd op for hver request og hvornår mon den tråd dør, og hvis den dør, dør så de tråde den har startet.
Saa vidt jeg har forstaaet (men jer er ikke ASP.NET guru), saa har ASP.NET en thread pool pa default 20 traade per web applikation d.v.s. at traade genbruges.
Ja, nu skal jeg være der! :O) Beklager snøleriet...
Jeg er lige ved at tro, at den sikreste måde er at lave det på er ved at starte en .exe op på serveren der kan bruge den tid det tager uden at timeoute. Men det giver sikkert nogle andre problemer - måske nogle sikkerhedsmæssige. Det betyder også at jeg skal til at kode det helt om hvis jeg gør det på den måde... Ellers kunne man lave et eller andet med at sende 50 mails af gangen og så reloade siden, men det er lidt noget snask...
Hvorfor er det ikke pænt at starte en tråd op på en ASP.NET-side?
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.