05. april 2004 - 20:48Der er
14 kommentarer og 1 løsning
Email (Async)
På en side hvor en bruger kan, få tilsendt noget software (som vedhæftet fil i mail), ved at udfylde nogle oplysninger, har jeg problemer med at brugeren skal vente nogle sekunder (30+) før han kan komme videre ...
Har I kendskab til nogle komponenter der tilbyder at sende mails i baggrunden, og som understøtter vedhæftning af filer fra en stream fra en database ?
Jeg har kigget lidt på devMail.NET, men venter stadig på at deres support finder ud af hvordan man vedhæfter filer fra en database.
du kan lave det hele i .NET frameworket. Lad brugeren udfylde det som han skal. Lave så et scheduleret job på serveren, som f.eks. hvert 5. min, ser efter om det skal udsendes nogle mails. På denne måde opdager brugeren ikke nogen ventetid.
Og du kan selvfølgelig også vedhæfte dokumenter til de mails du sender.
Alternativt kan du jo selv starte en process op i en anden tråd som så står for at afsende en mail. På den måde vil dine ikke skulle vente på at mailen bliver afsendt.
lauge >> Jeg har ikke mulighed for at lave et scheduleret job på serveren...
guidmaster >> Nogle eksempler ??? Vil du så ha' at jeg bruge den indbyggede klasse i .NET til at sende mails ? Og hvordan er mulighederne for at vedhæfte filer med denne klasse fra f.eks. en database ?
Jeg afsætter gerne flere point hvis jeg har undervuderet spørgsmålet ... sig bare til ...
nu har jeg ikke helt fattet det her med tråde - så jeg spørger lige en gang.
Hvis jeg nu har et debat forum, hvor der skal sendes en mail til 200 brugere ved hvert svar/indlæg. Idag bruger jeg en schedulering på serveren. Men er det "blot" at skrive den lille stump kode, som cyperfessor skriver, for at lave en ny tread?
Og virker det så således, at mine brugere ikke skal vente på at alle mails er sendt, men blot kan lukke browseren straks efter?
For det er jo lagt nemmere end at skulle sætte scheduleringer op hver gang.
Har prøvet at søge lidt på nettet om det, og nej... ser ikke ud til at der er nogle begrænsninger. Eneste jeg har kunne finde man skal huske, er at Priority åbenbart skal være sat til Low
guidmaster >> Jeg vil stadig gerne se dit ekspempel...
cyberfessor >> Tak for koden, men jeg kan ikke bruge det til noget hvis jeg ikke kan vedhæfte filer fra en database, så bliver jeg nok nødt til at kigge nærmere på devMail.NET eller lignende ... Nogen der har erfaring med nogle komponenter ?
ok cool. Det får mig til at tænke på om jeg også på en eller anden måde kan droppe scheduleringen på mine nyhedsbreve.
Det er således, at jeg har en schedule som køre 1 gang hver dag evt. kl 11.00, den udsender så alle de nyheder der er skrevet de sidste 24 timer. Men kan man også gøre det i en tråd, således at hvis jeg skriver en nyhed nu, så bliver den først udsendt kl. 11.00 gennem en tråd.?
Det går selvfølgelig galt hvis serveren nu bliver genstartet.
måske... nu har jeg ikke undersøgt det super-meget, og har ikke selv haft brug for at bruge det (endnu), men jeg kunne forestille mig at en session lavet under eksekvering af en side kun eksisterer så længe at den session den blev lavet i gør. Dvs. at når session'en timer ud nedlægges tråden. Det er dog kun en teori, det kan også være at session'en aldrig udløber så længe at tråden kører.
Under alle omstændigheder, så vil jeg mene at det er bedre at oprette sådan en tråd, der altid skal køre under Application_Start-eventen i global.asax.
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.