2017-08-22 1 views
1

毎晩HTTPContext.Current.Cacheがクリアされます。私はしたい時刻Xの夜にサイトをウォームアップし、データでキャッシュを埋める。Asp.netサイトでのHTTPリクエストのスケジュール

私はHTTPContextを使用しているので、これはWebサイト内で実行する必要があります。私は現在、シンプルなボタンをクリックしてキャッシュを開始しています。サイトをクリックすると、数分の時間枠で非同期でキャッシュが満たされます。

私はそれができると思うようなオプションが実際のように簡単に仕事をしませんでしたソリューションで検索しました:

System.Timersは常にポーリングしています。また、私はそれを実行したい特定の時間を設定するオプションを持っていないようですか?

クォーツは非常に過度に見えましたが、おそらく仕事をすることができました。しかし、それを動作させるために読み込むビットです。

RegisterWaitForSingleObjectここでもタイマーだけで動作しますか?また、あるオブジェクトがすでに作成されているかどうかを確認でき、それらのオブジェクトの多くを作成するリスクがあるかどうかは不明です。また、オブジェクトの作成後にタイマーを変更しないでください。

比較的早いので、間違っている可能性があります。サイト内でスケジュールされたHTTPリクエストを実行するにはどうすればよいですか?

[EDIT] typo。ここで

+0

このアプリケーションは、単一インスタンスまたはWebファーム/ Webガーデンで実行していますか? – Win

+0

タスクスケジューラ関連するコードを含むページを要求するためにcurlを呼び出しますか? –

+0

@Win Webファームで実行しています。 – JakobMillah

答えて

1

は、私はページ上の(今のボタンのクリックに書かれている)、キャッシングを開始するには、匿名アクセスをサイト内のページを作成し、コードを入れ

  1. をDO-たいものですLOADイベント。

  2. は、そのページには、HTTPRequestを作るC#で簡単なコンソールアプリケーションを、(あなたがSystem.Net.WebClientの例を見ることができます)を作成します。

  3. このコンソールアプリケーションの.exeは、サーバーのWindowsスケジューラで特定の時刻(午前4時など)に実行されるようにスケジュールします。

+0

私はこれを試して、それに固執するかどうかを見てみましょう!ありがとう。 – JakobMillah

+0

このアプローチはセットアップと動作が非常に簡単でした。それでも他のプロジェクトや設定ファイルを避けることが大変なので、別のアプローチがあるかどうかを知りたいです。 – JakobMillah

+0

いつでもお手伝いします!この回答または他の誰かがあなたの問題を解決した場合は、それを承認済みとしてマークしてください – Cooleshwar

関連する問題