我通常認爲有一個網絡服務器做自動化是不好的做法,我寧願將它留在一個更適合自動化作業的服務中。
也就是說,使用上述條每頁,我會把使用Quartz.net標題爲進的Application_Start在Global.asax中
在application_end,關閉作業調度程序。
最後一個文件夾中,寫一個類,如:
C#
public class InsertRssFeedJob : IJob
{
public void Execute(JobExecutionContext context)
{
var rssController = new RssController();
rssController.InsertRssFeedItem("");
}
}
vb.net
Public Class InsertRssFeedJob
Implements IJob
Public Sub Execute(context as JobExecutionContext)
Dim rssContoller = new RssController()
rssController.InsertRssFeedItem("")
End Sub
End Class
對不起,我不知道VB那麼在IDE之外編寫它,所以你需要轉換這個C#。
private static IScheduler _scheduler;
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
_scheduler = new StdSchedulerFactory().GetScheduler();
JobDetail jobDetail = new JobDetail("rssFeedJob", null, typeof(InsertRssFeedJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);
trigger.Name = "myTrigger";
_scheduler.ScheduleJob(jobDetail, trigger);
}
protected void Application_End()
{
_scheduler.Shutdown();
}
而且,如果RssController需要訪問的任何上下文信息,你將需要得到從HttpContext類。
Si
感謝您的回答。我有一個更好的理解;但是我不知道**在Quartz.net中放入global.asax中application_start的部分。「另外,如何關閉application_end中的作業調度程序? – user1477388
下面是一個快速示例,它每隔一小時運行一次觸發器,您需要將其更改爲符合您的要求 – Slicksim
謝謝,Slicksim。這很有幫助。 – user1477388