Pregunta

Tengo un programa de asp.net, y tengo que enviar una gran cantidad de mensajes de correo electrónico. cuando llamo http: // localhost: 70 / SendEmails sistema enviará los correos electrónicos de una en una en hilos separados (al igual que asíncrono). No sé si este es el mejor método. Pero lo que quiero saber es: ¿Cómo programo para enviar mensajes de correo electrónico 10000, y después de que yo llamo el enlace, y luego cerrar el navegador (significa que la sesión se cerrará también), Entonces, si también se dará por terminado los hilos creé?

¿Cuál es el mejor método para enviar un montón de correos electrónicos?

¿Fue útil?

Solución

Yo sugeriría que la aplicación ASP.NET escribe la información en una cola de algún tipo -. Si eso es una cola de mensajes o simplemente una tabla en la base de datos

A continuación tiene un servicio independiente que ejecute para procesar la cola y enviar los correos electrónicos. De esa manera usted no tiene que esperar hasta que los correos electrónicos se han envió antes de responder, pero todavía se puede estar seguro de que por el momento la página responde, la solicitud se ha persistido.

Otra alternativa sería sólo para iniciar un nuevo hilo para hacer el envío dentro de la aplicación ASP.NET de correo electrónico, pero eso significa que si la aplicación fuera a caer encima (o reciclar) la solicitud se perdería. Es más fácil poner la tolerancia a la persistencia y la culpa en un servicio independiente, la OMI.

Otros consejos

El hilo no debe ser terminado por el cierre del navegador. Lo que podría interrumpir el hilo sería un reciclaje de la aplicación (si la memoria no crece demasiado, o surgen otras condiciones específicas).

El mejor método para el correo enviando sería contar con un servicio de Windows por separado, pero si eso no es posible, entonces el uso de un hilo podría ser una idea viable, siempre y cuando usted tiene un mecanismo para reiniciar el hilo en un reciclaje de aplicaciones y reiniciar el enviar desde donde se dejó. El problema con el reinicio es que se necesita una solicitud a una página para obtener el hilo de vuelta - que podría hacer esto desde un ordenador que controle utilizando una tarea programada, por ejemplo. Podría funcionar, pero no es muy fiable en comparación con un servicio de Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top