когда поток в asp.net будет прерван? - PullRequest
1 голос
/ 05 октября 2009

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

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

Ответы [ 2 ]

2 голосов
/ 05 октября 2009

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

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

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

0 голосов
/ 05 октября 2009

Поток не должен прерываться закрытием браузера. Прекращение потока может привести к повторному использованию приложения (если объем памяти слишком велик или возникают другие специфические условия).

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

...