C#定时调用的Quartz项目设计和实现

Quartz定时任务设计与实现
本文详细介绍了Quartz定时任务的项目设计与实现过程,包括核心概念解析、C#自托管方式应用、通用类编写及作业调度管理,为读者提供了一个从零开始构建Quartz定时任务系统的全面指南。

1.首先必须清楚一些概念:调度器,作业,定时触发器,如下

2.关于一个Quartz定时调用的项目的设计和实现

  把需要的东西抽象出来,比如把作业的一些属性,如作业的名称等,如下

 1 public int id { get; set; }
 2 /// 任务名称
 3 public string jobname { get; set; }
 4 
 5 /// job配置的时间
 6 public string jobcron { get; set; }
 7 
 8 /// job的分组的名称
 9 public string jobgroup { get; set; }
10 
11 /// 作业当前的状态,0.加入调度队列 1.未加入调度队列 2.暂停
12 public int jobtype { get; set; }
13 
14 public string jobtypename { get; set; }
15 
16 public string jobdescription { get; set; }
17 
18 /// 作业的开始时间
19 public DateTime createtime { get; set; }
20 
21 /// 0删除,1使用
22 public int type { get; set; }
23 
24 public string jobtrigger { get; set; }
25 
26 public string jobtriggergroup { get; set; }
27 
28 ///作业的下次执行时间
29 
30 public DateTime nexttime { get; set; }
31 
32 /// 作业的上次执行时间
33 
34 public DateTime pretime { get; set; }
View Code

3.项目整体设计

 

 4.因为是c#代码,所以采用的是自托管的方式

  可以参考下面

  https://www.itsvse.com/thread-3454-1-1.html

5.把Quartz里面的调度器,定时器,作业写一个通用类

 public static class JobManager
{ 
        public static void CreateScheduler()
        {

            ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
            sched = schedulerFactory.GetScheduler();

            sched.Start();

        }

        ///这边的type类型是通过反射方式加载进来的job作业类型如2里面的对象
        public static DateTimeOffset AddJob(Type jobType, string crons)
        {
            //创建作业的信息类
            IJobDetail jobCheck = JobBuilder.Create(jobType).
                WithIdentity(jobType.Name, jobDataGroup).
                UsingJobData(jobDataGroup, jobType.FullName)
                .Build();

            //创建时间篇
            ICronTrigger CronTrigger = new CronTriggerImpl(jobType.Name + jobtrigger, TriggerGroup, crons);//, crons
            return sched.ScheduleJob(jobCheck, CronTrigger);
        }
}
View Code

 6.总结,学习一个新东西先了解整体的框架和设计,再花时间去了解,其实源代码里面的demo是最好的

 

转载于:https://www.cnblogs.com/hkyyqqq/p/9751104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值