2015-11-14 83 views
1

我有一份工作,每30分鐘觸發一次。當職位發生火災時,我設置了測試表和記錄信息。例如:c#quartz.net不總是觸發

2015-11-14 03:00:00.000 
2015-11-14 03:30:00.000 
2015-11-14 04:00:00.000 
2015-11-14 04:30:00.000 
2015-11-14 05:00:00.000 
2015-11-14 05:30:00.000 
2015-11-14 06:00:00.003 
2015-11-14 06:30:00.000 

但它已經是第二次了,我已經注意到這項工作停止工作,不開火。現在已經是中午12點,上個工作時間是06:30:00。解決方案是再次發佈應用程序,並覆蓋舊的bin ...爲什麼發生這種情況,是石英錯誤還是服務器? P.S我使用asp.net mvc的,這是代碼:

ITrigger trigger = TriggerBuilder.Create() 
        .WithDailyTimeIntervalSchedule 
        (s => 
         s.WithIntervalInMinutes(30) 
         .OnEveryDay() 
         .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0)) 
        ) 
        .Build(); 

       scheduler.ScheduleJob(job, trigger); 

此外,服務器不下來,當沒有被解僱的就業機會。

回答

0

問題是當服務器處於非活動狀態(不接受請求),服務器池您的Web應用程序的資源,你需要設置你的服務器:

http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization

或保留我做了一件每兩分鐘運行一次的工作,它加載了一個只有短文本的頁面,這裏是我的代碼:

WebClient webClient = new WebClient(); 
     var stream = webClient.OpenRead("http://example.com/"); 


     var client = new WebClient(); 
     var text = client.DownloadString("http://example.com/"); 

     WebRequest request = WebRequest.Create("http://http://example.com/"); 
     //Get the response 
     WebResponse response = request.GetResponse(); 
     //Read the stream from the response 
     StreamReader reader = new StreamReader(response.GetResponseStream());