本篇在ASP.NET MVC下实践使用Quartz.NET执行定时任务。
首先通过NuGet安装Quartz.NET。
使用Quartz.NET的大致思路是:
1、实现IJob接口,定义具体要做的事情2、使用Quartz.NET的API定义定时任务规则3、在Application_Start注册定时任务
实现IJob接口。
public class MyJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Debug.WriteLine("Hello at " + DateTime.Now.ToString());
}
}
在Global.asax中定义规则,并在Application_Start中注册。
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
MyJobs();
}
private static void MyJobs()
{
//工厂
ISchedulerFactory factory = new StdSchedulerFactory();
//启动
IScheduler scheduler = factory.GetScheduler();
scheduler.Start();
//描述工作
IJobDetail jobDetail = new JobDetailImpl("mylittlejob",null, typeof(MyJob));
//触发器
ISimpleTrigger trigger = new SimpleTriggerImpl("mytrigger",
null,
DateTime.Now,
null,
SimpleTriggerImpl.RepeatIndefinitely,
TimeSpan.FromSeconds(10));
//执行
scheduler.ScheduleJob(jobDetail, trigger);
}