1

Web アプリ (asp.net mvc3、.net 4) があり、電子メール通知サービスを実装しようとしています。

基本的に、日時/コンテンツとメールを送信するユーザーを含むテーブルがあり、テーブルでその日時に到達したら、通知メールを送信したいと考えています。

これをどのように実装する必要があるのか​​ わかりません.データベースを常にチェックするバックグラウンドスレッドが必要ですか? これでは効率が悪いと感じます。

これを行う方法をいくつか提案できますか?

4

2 に答える 2

3

どこかのシステムで実行されるサービスまたはスケジュールされたジョブが必要になります (私は以前にこれを実行しました。ホスティングを共有し、自宅のコンピューターで定期的に実行するようにスケジュールした小さなアプリを作成しました)。このプロセスで通知を行うか、コントローラーでアクションを実行して、通知の送信をトリガーすることができます。

サービスがデータベースにクエリを実行し、通知を送信することが最も直接的な方法のようです。ただし、データベースまたは SMTP サーバーへのリモート アクセスがないなど、MVC アプリケーションでのアクションがより適切である理由がいくつかあります。

Windows タスク スケジューラなどを使用して、アプリケーション (コンソール アプリや CURL など) を実行するジョブをスケジュールできます。または、Quartz.netなどを使用して、ジョブを実行する独自のサービスを作成することもできます。

于 2012-05-21T17:34:17.833 に答える
0

それは正しいアプローチではありません。コンソール アプリケーションを作成し、組み込みのスケジューラ タスクを使用して定期的に実行する必要があります。

追加の参考資料として、Ayende Rahienのこの投稿をご覧ください。

于 2012-05-21T17:33:46.307 に答える