ASP.NET MVC 使用QuertZ组件来搞项目定时计划(再也不用windowsService了!!)
2018-11-15 12:17
826 查看
前言:抛弃windows计划,拥抱.NET组件.
每个人都喜欢监听和插件。今天,几乎下载任何开源框架,你必定会发现支持这两个概念。监听是你创建的C#类,当关键事件发生时会收到框架的回调。例如,当一个作业被调度、没有调度或触发器终止和不再触发时,这些都可以通过设置来通知你的监听器。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。
首先通过NuGet安装Quartz.NET。
如何使用?
1、实现IJob接口,定义具体要做的事情(作业)
2、使用Quartz.NET的API定义定时任务规则(规则)
3、在Application_Start注册定时任务(配置)
1.创建作业
作业继承IJob
public class JobDemo : IJob { public void Execute(IJobExecutionContext context) { System.IO.File.AppendAllText("C:/projectLog.log", "hello quartZ"); } }
需要注意的是,我nuget下载的是比较老的版本,近几年的组件中该接口需要实现的方法的返回值是一个Task类型。
2.规则定义
public class ReportJobScheduler { public static void Start() { IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); IJobDetail job = JobBuilder.Create<JobDemo>().Build();//创建job示例 ITrigger trigger = TriggerBuilder.Create() .WithIdentity("triggerName", "groupName") .WithSimpleSchedule(t => t.WithIntervalInSeconds(5)//5秒循环 .RepeatForever()) .Build(); scheduler.ScheduleJob(job, trigger); } }
3.配置
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //启用定时任务 ReportJobScheduler.Start(); } }
这样就可以使用了!
相关文章推荐
- 使用ASP.NET实现Windows Service定时执行任务
- MVC 使用Quartz.Net组件实现定时计划任务
- 使用ASP.NET实现Windows Service定时执行任务
- 使用ASP.NET实现Windows Service定时执行任务
- 使用ASP.NET实现Windows Service定时执行任务
- 使用ASP.NET实现Windows Service定时执行任务
- 使用ASP.NET实现Windows Service定时执行任务
- ASP.NET MVC 项目中使用 WebForm
- 使用SharpDevelop 4编译asp.net mvc 2项目并部署到iis5.1(WinXP)(下)
- (转)看了一些ASP.NET MVC开源项目后的一些想法,关于ASP.NET MVC+Repository+Service架构的一些思考
- Asp.net MVC 示例项目"Suteki.Shop"分析之---Model和Service
- 在 ASP.NET MVC 项目中使用 WebForm
- 使用SharpDevelop 4编译asp.net mvc 2项目并部署到iis5.1(WinXP)(上)
- 在 ASP.NET MVC 项目中使用 WebForm
- 在 ASP.NET MVC 项目中使用 WebForm
- 初识ASP.NET 3.5 MVC 路由 在WebForm项目中使用路由
- 微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework
- asp.net 不用组件的URL重写(适用于较大型项目)
- 认识 ASP.NET 3.5 MVC 路由 在WebForm项目中使用路由
- Asp.net MVC RTM1.0使用NUnit做测试项目