1

私は15分ごとまたはプロセスを実行したいは外部でホストされているウェブサイト

IIS 7の上に、私は、外部プロバイダによってホストされているASP.NET MVC Webアプリケーションを持っているのキューベースのバックグラウンド・プロセスを実行します送信する必要がある電子メールのバックログをチェックし、実際に送信します。

これを行う通常の方法はMicrosoft Message Queueを使用しているようですが、これは直接制御できないホストされた環境なので、MSMQをインストールまたは構成することはできません。

これまでのところ、SQL Serverデータベース(同じホスティング)のテーブルに行を追加することで、これを行うことにしました。

バックログを確認して電子メールを送信する場所をどのように実装する必要がありますか?

メインWebアプリケーションで何らかの種類のスレッドが必要ですか?15分ごとに再起動しますか?

私が考えた別のオプションは、適切な管理者パスワードで呼び出されたときに電子メール送信者の反復を実行するHTTP-POSTインターフェイスを開くことでした。

私は15分ごとにインターフェイスを呼び出すローカルPCに小さなコンソールアプリケーションを作成することができました。

最初のオプションは簡単ですが、2番目のオプションはより堅牢です。

アイデア?

答えて

2

Jeff Atwoodは、期限切れのキャッシュを使用してプロセスを定期的にリセットするスタックオーバーフローでバッジシステムをどのように達成したかについての記事を投稿しました。

http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

私は毎日出てメールを送信し、過去にこれに似た何かを行っています。サービスは必須ではなく、電子メールが1日か2日に欠落しても最終的には外出するようになっても問題ありませんでしたが、システムはかなりうまく機能しました。それはすべてasp.netだから、サーバー上のサービスにアクセスしたり、デスクトップからローカルトリガーを作成したりすることなく、私が使用するホスティング環境でうまく動作します。

3

Quartz.NETをご覧になることをお勧めします。また注意すべき重要な点は、WebサーバーがASP.NETアプリケーションをメモリからアンロードし、使用されていない場合、生成されたすべてのスレッドが単に消滅することを意味します。これが、ASP.NETアプリケーションでは実行しないで、Windowsサービスで負荷を軽減する理由の1つです。

関連する問題