博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我心中的核心组件(可插拔的AOP)~调度组件quartz.net
阅读量:5876 次
发布时间:2019-06-19

本文共 2589 字,大约阅读时间需要 8 分钟。

quartz.net是一个任务调度组件,它可以灵活的设置你的调试方式,按时间,按日期,按周期都可以很容易的实现,quartz不仅可以用在web中,而且还可以部署在winform,winservice上,下面我们就来作一个简单的调试服务,我们以WEB环境为例,WEB端采用比较流行的MVC3实现。

首先需要引入三个组件DLL

C5.DLL,log4net.DLL,Quartz.DLL,Common.Logging

对于WEB项目来说,调度的注入后我们可以放在global.asax里,它可以使我们的调度任务在应用程序启动时自动启动,在应用程序结束时,自动结束,这是我们需要看到的。

global.asax内容:

IScheduler sched;        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            // 默认情况下对 Entity Framework 使用 LocalDB            Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");            RegisterGlobalFilters(GlobalFilters.Filters);            RegisterRoutes(RouteTable.Routes);            log4net.Config.XmlConfigurator.Configure();            string cronExpr = ConfigurationManager.AppSettings["cronExpr"];            ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory();            sched = sf.GetScheduler();            IJobDetail job = JobBuilder.Create
() .WithIdentity("job1", "group1") .Build(); ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithCronSchedule(cronExpr) .Build(); sched.ScheduleJob(job, trigger); sched.Start(); } protected void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 if (sched != null) { sched.Shutdown(true); } }

再看我们的调度代码,即调试的回调方法,它必须要实现IJob接口,这个接口只有一个方法Execute,我们把要做的事件写在这里即可,而它有一个参数IJobExecutionContext,它所传入的是当前任务(job)的对象。

public class Callback : IJob    {        private readonly ILog logger = LogManager.GetLogger(typeof(Callback));        #region IJob 成员        public void Execute(IJobExecutionContext context)        {            logger.Info(context.JobDetail.Key.Name + DateTime.Now);        }        #endregion    }

下面我们再来看一下配置文件里的相关信息,它由quartz节点和log4日志配置节点组成

好了,现在我们就可以运行WEB项目了,这时你的根目录的log目录下应该已经有我们的调度日志了,呵呵。

转载于:https://www.cnblogs.com/lori/p/3310919.html

你可能感兴趣的文章
如何从出行无线覆盖到智慧交通演变,锐捷智慧交通解决方案有一套
查看>>
Implementing Effective MySQL Database Backup Mechanisms
查看>>
Cocoa触发方法调用的几种方法
查看>>
数据中心能效的重要要素丨潜热与显热
查看>>
面对巨大的数据增长 我们准备好了吗
查看>>
揭秘CDN用户驱动的产品变革
查看>>
LOFTERD18B542F16FF685FD684F427B4…
查看>>
加速企业决策 Mellanox优化固态存储互连
查看>>
如何让App首屏启动更快 -- httpdns持久化缓存方案
查看>>
国产流氓软件“火球”全球作恶 受害者众多引起公愤
查看>>
财务机器人正式上岗,一个机器顶40个人!
查看>>
经济危机下,三招实现企业网络应用最大化
查看>>
2016中国大数据应用大会将于7月召开
查看>>
高德地图上线全国最全小客车、货车限行提醒功能
查看>>
网康慧眼云发现企业网络中的XcodeGhost失陷手机
查看>>
同济吴志强:可持续发展的智慧同济校园
查看>>
网络安全老兵座谈:云安全审计(评估)应该怎么做?
查看>>
虚拟化能够满足将来的存储系统的需求
查看>>
关于weblogic配置pg和sqlserver数据源的注意事项
查看>>
从搬运工做起 动视云让游戏不再受终端束缚
查看>>