ASP.Net アプリの起動時に「x」分ごとに実行するメソッド「ProcessBatch ()」を起動したいと思います。
このためのコードを Application_Start イベントに追加する必要があると思います。
これを行う最善の方法は何ですか? Web サイトでアプリ プールがリサイクルされたときに、実行中のスケジュールされたタスクが Web 要求として扱われ、完了できるようになりますか?
ASP.Net アプリの起動時に「x」分ごとに実行するメソッド「ProcessBatch ()」を起動したいと思います。
このためのコードを Application_Start イベントに追加する必要があると思います。
これを行う最善の方法は何ですか? Web サイトでアプリ プールがリサイクルされたときに、実行中のスケジュールされたタスクが Web 要求として扱われ、完了できるようになりますか?
また、サイトがホストされている場所によっては、そのプロバイダーのスケジュールされたタスク システムを使用できる場合があります。Azureには、RackspaceCloud とDiscountASP.NETもあります。
Web サーバーで「x 分ごと」に実行されるスケジュールされたタスクを作成することはできません。
一部の人々は、時々サイトに ping を送信するクライアント コンピューター上で実行されるサービスを作成します。ただし、そのためには、そのクライアントが稼働している必要があります。
あなたが言うように、1つの回避策は Application_Start イベントですが、アプリケーションは数分以上実行される場合があります。それがいつなのか、私たちは実際には知りません。
Session_Start イベント (新しいユーザーがいずれかのページを開くたび) や、独自の HttpModule を作成する場合は BeginRequest イベントなど、別の場所でタスクを実行できます。
これらのイベントでは、サイトに膨大なユーザーの負荷がかかっている場合に、タスクが最後に実行された時間を覚えておくことができます (静的または ApplicationState など)。
お役に立てれば?