1

asp.net プログラムを使用しており、大量のメールを送信する必要があります。http://localhost:70/sendemailsを呼び出す と、システムはメールを個別のスレッドで 1 つずつ送信します (非同期のように)。これが最善の方法かどうかはわかりません。しかし、私が知りたいのは、10000通のメールを送信するようにスケジュールし、リンクを呼び出した後、ブラウザを閉じます(セッションも閉じられることを意味します)。その後、作成したスレッドも終了しますか?

大量のメールを送信する最良の方法は何ですか?

4

2 に答える 2

2

ASP.NET アプリケーションは、メッセージ キューであろうとデータベース内の単なるテーブルであろうと、何らかの説明のキューに情報を書き込むことをお勧めします。

次に、キューを処理してメールを送信する別のサービスを実行します。そうすれば、応答する前に電子メールが送信されるまで待つ必要はありませんが、ページが応答するまでに要求が永続化されていることを確認できます。

もう 1 つの方法は、ASP.NET アプリケーション内で電子メール送信を行う新しいスレッドを開始することですが、これは、アプリケーションがフォールオーバー (またはリサイクル) された場合、要求が失われることを意味します。永続性とフォールト トレランスを別のサービスである IMO に配置する方が簡単です。

于 2009-10-05T08:44:17.473 に答える
0

ブラウザを閉じてもスレッドが終了してはなりません。スレッドを終了させる可能性があるのは、アプリケーションのリサイクルです (メモリが大きくなりすぎた場合、または他の特定の条件が発生した場合)。

メール送信の最良の方法は、別の Windows サービスを用意することですが、それが不可能な場合は、アプリケーションのリサイクルでスレッドを再起動し、どこから送信を再開するかというメカニズムがあれば、スレッドを使用することが実行可能なアイデアになる可能性があります。残っていました。再起動の問題は、スレッドを元に戻すためにページへのリクエストが必要なことです。たとえば、スケジュールされたタスクを使用して、制御するコンピューターからこれを行うことができます。動作する可能性はありますが、Windows サービスと比較して信頼性は高くありません。

于 2009-10-05T08:47:25.433 に答える