C# MVC Quartz.Net的使用_利用quartz实现定时任务调度
之前使用自动任务的,会写一个程序通过使用windows任务计划来调度,其实.net下有自动任务框架可以使用,一直没有拿来用,现在准备用下,所以找了些资料学习了下,记录下。安装Install-Package Quartz -Version 3.0.7 我使用的3.0.7的版本来进行测试。
主要是三个dll,Common.Logging.dll,Common.Logging.Core.dll,Quartz.dll,接下来就可以做简单的测试了,大概步骤如下:
1.继承作业接口Ijob建立job
2.建立作业调度器Scheduler
3.通过JobBuilder生成一个任务job
4.通过TriggerBuilder建立一个触发器trigger
5.将job和trigger加入调度器Scheduler中
创建一个任务 通过继承接口IJob需要实现Execute方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Quartz; namespace quartzdemo { public class demojob1:IJob { public void Execute(IJobExecutionContext context) { Console.WriteLine("execute job"); } } }
创建调度器
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Quartz; using Quartz.Impl; namespace quartzdemo { public class demoscheule { public static void start(){ //-------demo1 无参数 简单调用的方法----------------- ISchedulerFactory schedulefactory = new StdSchedulerFactory();//实例化调度器工厂 IScheduler scheduler = schedulefactory.GetScheduler();//实例化调度器 scheduler.Start(); IJobDetail job1 = JobBuilder.Create<demojob1>()//创建一个作业 .WithIdentity("demojob1", "groupa") .Build(); ITrigger trigger1 = TriggerBuilder.Create()//创建一个触发器 .WithIdentity("demotrigger1", "groupa") .StartNow() .WithSimpleSchedule(b => b.WithIntervalInSeconds(5)//5秒执行一次 .RepeatForever())//无限循环执行 .Build(); scheduler.ScheduleJob(job1, trigger1);//把作业,触发器加入调度器 } } }
将此调度器执行
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace quartzdemo { class Program { static void Main(string[] args) { Console.WriteLine("job start"); demoscheule.start(); Console.ReadKey(); } } }
以上代码就可以执行了,其实还可以通过其它方式调用,比如使用JobDataMap或者是通过配置文件来进行任务调度都可以完成调度。另外在开发的过程中我还发现另外一个定时任务的插件:FluentScheduler,这个也非常好用,只需要几句代码就能搞定。
若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。
想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。
或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)。
如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。
为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。