2009-10-05 3 views
1

У меня есть программа asp.net, и мне нужно отправить много писем. , когда я звоню http://localhost:70/sendemails система отправит электронные письма по одному в разделенных потоках (точно так же, как async). Я не знаю, является ли это лучшим методом. , но я хочу знать: я планирую отправить 10000 электронных писем, а после того, как я позвоню по ссылке, а затем закройте браузер (это значит, что сессия тоже будет закрыта), Тогда, если потоки, созданные мной, также будут прекращены ?Когда будет прекращена нить в asp.net?

Каков наилучший способ отправить много писем?

ответ

2

Я бы предположил, что приложение ASP.NET записывает информацию в очередь некоторого описания - будь то очередь сообщений или просто таблица в базе данных.

Затем у вас есть отдельный сервис для обработки очереди и отправки электронной почты. Таким образом, вам не нужно ждать, пока сообщения электронной почты не будут отправлены , прежде чем вы ответите, но вы все равно можете быть уверены, что к моменту ответа страницы запрос будет сохранен.

Другой альтернативой может быть только запуск нового потока для отправки электронной почты в приложении ASP.NET, но это означает, что если приложение должно упасть (или будет переработано), запрос будет потерян. Легче поставить устойчивость и отказоустойчивость в отдельную службу, ИМО.

+0

Yeap-что-то вроде MSMQ. – RichardOD

0

Нить не должна заканчиваться закрытием браузера. То, что могло бы прекратить поток, было бы рециркуляцией приложения (если память слишком сильно возрастает или возникают другие особые условия).

Лучший способ отправки почты - иметь отдельную службу Windows, но если это невозможно, то использование потока может быть работоспособной идеей, при условии, что у вас есть механизм для перезапуска потока в приложении и перезагрузки отправление с того места, где оно было оставлено. Проблема с перезагрузкой заключается в том, что вам нужен запрос на страницу, чтобы вернуть поток - вы можете сделать это с компьютера, которым вы управляете, например, с помощью запланированной задачи. Может работать, но не очень надежно по сравнению с сервисом Windows.