Domanda

Ho un programma asp.net, e ho bisogno di inviare un sacco di messaggi di posta elettronica. Quando chiamo http: // localhost: 70 / SendEmails sistema invierà l'email uno per uno in thread separati (proprio come asincrona). Non so se questo è il metodo migliore. ma quello che voglio sapere è: io programmo di inviare 10000 e-mail, e dopo io chiamo il collegamento, e quindi chiudere il browser (significa che la sessione sarà chiusa troppo), Poi, se saranno terminate le discussioni che ho creato?

Qual è il metodo migliore per inviare un sacco di messaggi di posta elettronica?

È stato utile?

Soluzione

Vorrei suggerire che l'applicazione ASP.NET scrive le informazioni in una coda di qualche descrizione -. Se questo è una coda di messaggi o solo una tabella nel database

Poi hanno un servizio separato in esecuzione per elaborare la coda e inviare i messaggi di posta elettronica. In questo modo non c'è bisogno di aspettare fino a quando le e-mail sono state ha inviato prima di rispondere, ma è ancora possibile essere sicuri che per il momento la pagina risponde, la richiesta è stata resa persistente.

Un'altra alternativa sarebbe solo per iniziare un nuovo thread per fare l'e-mail di invio all'interno dell'applicazione ASP.NET, ma questo significa che se l'applicazione dovesse cadere (o essere riciclato) la richiesta sarebbe perso. E 'più facile mettere la tolleranza persistenza e colpa in un servizio separato, IMO.

Altri suggerimenti

Il filo non dovrebbe essere terminato dalla chiusura del browser. Quale potrebbe interrompere il filo sarebbe un riciclo della domanda (se la memoria cresce troppo, o sorgono altre condizioni specifiche).

Il metodo migliore per la posta inviando sarebbe di avere un servizio di Windows a parte, ma se questo non è possibile, quindi utilizzando un filo potrebbe essere un'idea praticabile, condizione che si disponga di un meccanismo per riavviare il filo su un riciclo di applicazione e riavviare il l'invio da dove è stato lasciato. Il problema con il riavvio è che hai bisogno di una richiesta di una pagina per ottenere il filo di nuovo - si potrebbe fare questo da un computer che controlli utilizzando un'operazione pianificata per esempio. Potrebbe funzionare, ma non è molto affidabile rispetto ad un servizio di Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top