0

毎日午前 8 時に実行したいタスクがあり、このソリューションを検討しています: https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

しかし、私はそれがどのように機能するかのメカニズムを理解していません。

ユーザー X が金曜日の午後 4 時にサイトにアクセスし、ブラウザを閉じてコンピュータの電源を切ったとします。キャッシュの有効期限は、土曜日の午前 8 時に発生しますか? ユーザーがサイトにアクセスしない場合でも、私のプロセスは毎日起動しますか?

基本的に、私の質問は、この方法は信頼できるものですか? それとも、サイトにアクセスするユーザーに依存していますか?

4

2 に答える 2

2

ASP.NET アプリケーションが IIS でホスト (開始) されると、いくつかのイベントが発生しますが、その中でも Application_Start は最も重要なイベントの 1 つです。バックグラウンド タスクを設定すると、アプリケーションが IIS から停止/アンロードされるか、IIS サービス自体が停止されるまで実行され続けます。IIS は、すべての ASP.NET Web サイトのホスト プロセスです。

キャッシュは Web サーバー上で維持されるため、アクティブなユーザーとは何の関係もありません。

これは、コードの最初の行がタイマーを使用してキャッシュに何かを追加しているコンソール アプリケーションに似ています。コンソール アプリケーションが稼働している限り実行されます。

これがお役に立てば幸いです!

于 2011-08-01T16:41:41.830 に答える
1

サーバー側のキャッシュは、ブラウザーのキャッシュとは異なります。ユーザーがブラウザーを閉じても、Jeff のコードにはまったく影響しません。ただし、アプリケーション プールがシャットダウンした場合 (サイトにアクセスしているユーザーがいない場合もあります)、誰かがサイトを参照するまでコードはまったく実行されず、アプリ プールが再びスピンアップし、午前 8 時になります。翌日(アプリプールがまだ稼働していると仮定)。

于 2011-08-01T16:43:43.143 に答える