2016-07-14 2 views
2

石英スケジューラでasp.netサイトを作成しました。ジョブはバックグラウンドで実行されており、サイトには他のアクティビティはありません。C# - サイトでアクティビティがないときにクォーツスケジューラが実行を停止しました

石英スケジューラが30分ごとにスケジュールされます。

IISの起動後、スケジューラが正しく動作しています。

しかし、しばらくしてから、スケジューラは停止していました(約1時間)。

ユーザーログインまたはビューダッシュボードとしてサイト上に1つ以上のアクティビティがある場合、スケジューラは正しく動作します。

しかし、サイト上でアクティビティが発生していない場合は、動作を停止します。

サイト内で何の活動もしていない時にスケジューラを常に維持していますか?

P/s:私の質問は他の質問と重複することがあります。しかし、私は他の質問の答えで尋ねることはできないので、私はまだ尋ねます。

編集:アプリケーションは、一定の期間のための要求を受信しなかった場合、デフォルトで

Day Running at: 7/14/2016 4:00:00 AM 
-- 
Day Running at: 7/14/2016 4:30:00 AM 
-- 
Day Running at: 7/14/2016 5:00:00 AM 
-- 
Stopped running 
-- 
Day Running at: 7/14/2016 2:00:00 PM 
-- 
Day Running at: 7/14/2016 2:30:00 PM 
-- 
Day Running at: 7/14/2016 3:00:00 PM 
-- 
Stopped running 
-- 

答えて

5

、IISアプリケーションをアンロードします。

アプリケーションをアンロードしないようにIISを構成できます。IISがアプリケーションをアンロードする理由はたくさんあります。すべてを無効にする必要があります。それはアプリケーションプールの設定で、より良い詳細設定に移動し、それらのすべてを注意深く渡します。

バックグラウンドジョブがある場合は、確実にスケジュールどおりに実行する必要があります.Webアプリケーションに加えて、Windowsサービスにも展開してみませんか? Webアプリケーションは、スケジュールされたジョブを実行するのではなく、着信要求を処理するのに最適です。

UPDATE

チェックアウト、アプリケーションプールの[詳細設定]でこれら:

  • プロセスモデル/アイドルタイムアウトとアイドルタイムアウトアクション
  • リサイクル/定期的な時間間隔、要求制限、プライベートメモリ制限、仮想メモリ制限
+0

私は、Webアプリケーションのバックグラウンドジョブを使用するには、いくつかの理由があります。セッションタイムアウトアイドルを増やして設定しようとしましたが、私の仕事はまだ停止していました。だから、IISが私のアプリケーションをアンロードするいくつかの理由を私に提案できますか? – TonyBui

+0

@ TonyBui:共有ホスティング? :) –

+0

@AndreiRînea:いいえ、私はプライベートホスティングで私のWebアプリケーションをホストしています。 – TonyBui

2

通常はyou shouldn't use ASP.NET for recurring tasksそのために構築されていないため、Windowsサービスを使用することをお勧めします。

ただし、WebBackgrounderを使用できます。 Scott Hanselmanはendorse itと思われます;)彼はQuartz.NETの使用方法も示しています。


それとも、各分自身にあなたのアプリからのリクエストを生成し、スレッドを開始することができ、それを維持するために:

protected void Application_Start() 
    { 
     // ... 

     ThreadPool.QueueUserWorkItem(o => PingMyself()); 
    } 

    private static void PingMyself() 
    { 
     var webClient = new WebClient(); 
     while (true) 
     { 
      Thread.Sleep(TimeSpan.FromMinutes(1)); 
      webClient.DownloadString("http://my.public.address.com"); 
     } 
    } 
関連する問題