Quartz.NET一个开源的作业调度框架
Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。
Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。
整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。

官网:http://www.quartz-scheduler.net/
下面结合我的项目中的使用给大家分享:
包括以下技术点:单一实例模式、NLog使用方法、模板类、抽象类、抽象方法、接口、Cron表达式


首先,我们先起一个模板类JobService,定义抽象的操作,实现类自己通过重写GetTrigger()去定义触发的时间。
接下来,我们来看看一个实现类ExpiredSessionsJobService,它定义了每60秒就触发一次,当然这个时间定义,我们还可以用Cron表达式,可以用这类写法:
ICronTrigger CronTrigger = new Quartz.Impl.Triggers.CronTriggerImpl(JobName, GroupName, "0/60 * * * * ?");

Cron表达式
quartz中的cron表达式和Linux下的很类似,比如 "/5 * * ? * * *" 这样的7位表达式,最后一位年非必选。
表达式从左到右,依此是秒、分、时、月第几天、月、周几、年。下面表格是要遵守的规范:
实例介绍
”0 0 10,14,16 * * ?" 每天10点,14点,16点 触发。
"0 0/5 14,18 * * ?" 每天14点或18点中,每5分钟触发 。
| 字段名 | 允许的值 | 允许的特殊字符 |
|---|---|---|
| Seconds | 0-59 | , - * / |
| Minutes | 0-59 | , - * / |
| Hours | 0-23 | , - * / |
| Day of month | 1-31 | , - * ? / L W |
| Month | 1-12 or JAN-DEC | , - * / |
| Day of week | 1-7 or SUN-SAT | , - * ? / L # |
| Year | 空, 1970-2099 | , - * / |
| 特殊字符 | 解释 |
| , | 或的意思。例:分钟位 5,10 即第5分钟或10分都触发。 |
| / | a/b。 a:代表起始时间,b频率时间。 例; 分钟位 3/5, 从第三分钟开始,每5分钟执行一次。 |
| * | 频率。 即每一次波动。 例;分钟位 * 即表示每分钟 |
| - | 区间。 例: 分钟位 5-10 即5到10分期间。 |
| ? | 任意值 。 即每一次波动。只能用在DayofMonth和DayofWeek,二者冲突。指定一个另一个一个要用? |
| L | 表示最后。 只能用在DayofMonth和DayofWeek,4L即最后一个星期三 |
| W | 工作日。 表示最后。 只能用在DayofWeek |
| # | 4#2。 只能用DayofMonth。 某月的第二个星期三 |
具体的业务处理类是ExpiredSessionsJob,它必须实现IJob,Execute方法为具体业务方法,实现作业的内容;


我们还可以新建一个ASP.NET WEBSITE,并引入CrystalQuartz.Remote包,生成后台可监控的管理平台。

Quartz.NET一个开源的作业调度框架的更多相关文章
- Quartz 开源的作业调度框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...
- Quartz作业调度框架及时间表达式的含义和语法
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...
- Quartz作业调度框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本 ...
- [转载] Quartz作业调度框架
转载自http://yangpanwww.iteye.com/blog/797563 Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提 ...
- java作业调度框架Quartz
在软件开发中,很多时候需要在特定时间的时间执行某些操作,比如每天的凌晨三点.每周的周日.每个月的15号,Apache Quartz就是一个开源的作业调度框架,可以让计划的程序任务一个预定义的日期和时间 ...
- .Net平台开源作业调度框架Quartz.Net
Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...
- (转).Net平台开源作业调度框架Quartz.Net
Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...
- Quartz.net 开源job调度框架(一)
Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...
- Quartz.NET作业调度框架详解(转)
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...
随机推荐
- POJ 3461 字符串出现次数 && HDU1711 字符串第一次出现的位置 模板题
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 48387 Accepted: 19261 Descri ...
- 打开input输入的时候,css中position:absolute/fixed定位的时候,定位元素上移问题解决
1.异常代码 <style> .box{ min-height: 100vh; width: 100%; position: relative; } .position{ position ...
- [TypeScript] Transform Existing Types Using Mapped Types in TypeScript
Mapped types are a powerful and unique feature of TypeScript's type system. They allow you to create ...
- zookeeperclient设置监听
1.目的 zookeeper是一个分布式服务管理框架.zookeeper提供了对client的通知.即在server端的节点有改动或者删除的时候,能够给client进行通知. 2.server端部署 ...
- Navicat for MySQL出现#1045 错误怎么办
#1045 - Access denied for user 'root'@'localhost' (using password: NO)这是因为你连接的时候没有密码或者密码没改对导致的.如下图所示 ...
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
wpf 导出Excel 1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...
- Angular45
Angular 4 Tutorial for Beginners: Learn Angular 4 from Scratch https://www.youtube.com/watch?v=k5E2A ...
- A + B Problem II(杭电1002)
/*A + B Problem II Problem Description I have a very simple problem for you. Given two integers A an ...
- HTML5_路径
<!DOCTYPE html> <hmtl> <html lang="zh-cn"> <head> <meta charse ...
- github远程仓储和本地仓储进行关联
我们使用github作为远程仓储,需要提前注册号一个github账号 由于github仓储和本地仓储之间传输是使用ssh加密的,所以需要一点设置, 1.创建sshkey gitbash执行: ssh ...