2015-11-14 158 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());