Quartz.Net
定时调度系列之Quartz.Net详解
懒笔头
这个作者很懒,什么都没留下…
展开
-
第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)
一.IIS部署 比如在MVC框架中集成了Quartz.Net定时调度,此时该调度系统会随着MVC框架被挂在IIS下,IIS会进程回收,所以大部分开发都会遇到Quartz挂在IIS下一段时间不好用。 补充:IIS可以设置定时自动回收,默认回收是1740分钟,也就是29小时。IIS自动回收相当于服务器IIS重启,应用程序池内存清空,所有数据被清除,相当于IIS重启,在度量快速开发平台服务器端...转载 2019-12-27 11:23:59 · 396 阅读 · 0 评论 -
第十节: 利用SQLServer实现Quartz的持久化和双机热备的集群模式
背景:默认情况下,Quartz.Net作业是持久化在内存中的,即 quartz.jobStore.type = "Quartz.Simpl.RAMJobStore, Quartz",这种模式有以下弊端:① 想在A服务器上控制B服务器上已经发布了的job和trigger不方便;② 很难实现Web端(寄宿在IIS上)管理作业,客户端(发布成服务)的这种模式。③ 最大弊端就是一旦服务器宕机...转载 2019-12-27 10:26:00 · 282 阅读 · 0 评论 -
第九节: 利用RemoteScheduler实现Sheduler的远程控制
一. RemoteScheduler远程控制1. 背景: 在A服务器上部署了一个Scheduler,我们想在B服务器上控制这个Scheduler。2. 猜想: A服务器上的Scheduler需要有地址、需要有端口、需要有名称(实际上也是如此)。3. 需求: 一个控制台程序作为服务端运行A服务器上(也可以部署成服务),用另一个B服务器上的Web端控制来控制这个Scheduler的暂停、继...转载 2019-12-27 10:07:31 · 194 阅读 · 0 评论 -
第八节: Quartz.Net五大构件之SimpleThreadPool及其四种配置方案
一. 简介揭秘:SimpleThreadPool是Quartz.Net中自带的线程池,默认个数为10个,代表一个Scheduler同一时刻并发的最多只能执行10个job,超过10个的job需要排队等待。二. 四种配置方案1.NameValueCollection的方式 需要利用StdSchedulerFactory的构造函数进行传进去,向哪个Sheduler中传,即配置哪个S...转载 2019-12-27 09:58:29 · 556 阅读 · 0 评论 -
第七节:Trigger(SimpleTrigger、CronTrigger)哑火(MisFire)策略
一. 简介1. 什么是哑火 由于某些原因导致触发器(trigger)在该触发的时候没有得到触发,后续对应的解决策略即为哑火策略。(个人理解)2. 哑火触发的条件 ①:所有的工作线程都在忙碌,导致某些trigger得不到触发.(如:simplethreadpool 默认是10个工作线程,但我有15个trigger同时触发,恰巧这10个trigger关联的job耗时都很长,剩下的...转载 2019-12-26 15:32:34 · 679 阅读 · 0 评论 -
第六节: 六类Calander处理六种不同的时间场景
背景介绍及其使用 该章节主要补充介绍,在前一章四类触发器的基础上配合六大Canlander来动态删减某些时间,来满足更多的应用场景。1. DailyCalendar:动态排除某天的某些字段.(需求:每天8-23点执行,每隔1s执行一次,但是21-22点这个区间不执行)2. WeeklyCalendar:适合在星期几的维度上做“减法操作”(需求:每天8-23点执行,每隔1s执...转载 2019-12-26 15:26:40 · 509 阅读 · 0 评论 -
第五节: Quartz.Net五大构件之Trigger的四大触发类
一.WithSimpleSchedule(ISimpleTrigger)1. 用途:时、分、秒上的轮询(和timer类似),实际开发中,该场景占绝大多数.2. 轮询的种类:永远轮询和限定次数轮询.3. 参数中的几个函数:A.执行间隔: ①.WithInterval(TimeSpan timeSpan):通用的间隔执行方法 ②.WithIntervalInHours(...转载 2019-12-26 15:24:22 · 769 阅读 · 0 评论 -
第四节: Quartz.Net五大构件之Trigger通用用法(常用方法、优先级、与job关联等)
一. 简介1. 几个类型: ①:TriggerBuilder:用来创建ITrigger实例 ②:ITrigger:触发器实例2.常用的几个方法 ①.StartNow:Trigger马上触发. ②.StartAt和EndAt:设置Trigger触发的开始时间和结束时间 (省略设置开始时间的话,默认从当前时间开始执行) ③.UsingJobData:给Trigge...转载 2019-12-26 15:06:38 · 1112 阅读 · 0 评论 -
第三节: Quartz.Net五大构件之Scheduler(创建、封装、基本方法等)和Job(创建、关联等)
一. 五大构件Quartz.Net的五大构件 1. 调度器:Scheduler 2. 作业任务:Job 3. 触发器: Trigger 4. 线程池: SimpleThreadPool 5. 作业持久化:JobStore二. Scheduler详解1. 创建Scheduler的两种方式 (1). 直接通过StdSchedulerFac...转载 2019-12-26 15:00:20 · 732 阅读 · 0 评论 -
第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)
一. 时间的类型1. 背景 这里为什么要介绍时间类型呢,明明是定时调度篇,原因是在定时任务中,任务什么时间开始执行,什么时间结束执行,要用到各种各样的时间模式,虽然这不能算是一个复杂的问题,但在正式介绍Quartz.Net之前,还是很有必要补充一下的,该章节就是解决这类问题的。2. 时间类型 时间类型主要有两类:DateTime和DateTimeOffset ...转载 2019-11-21 14:07:07 · 617 阅读 · 0 评论 -
第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
一. 前奏-Timer类实现定时任务在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类,DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是: ①.位于System.Windows.Forms里,即定时器控件,不过多介绍了 ②.位于System.Threading.Timer类里 (重点介绍) ③.位于Sy...转载 2019-11-21 13:41:20 · 129 阅读 · 0 评论 -
定时调度系列之Quartz.Net详解
一. 背景我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "、"每天的0点需要统计前一天的考勤记录"、"每个月的1号计算上个月的库存情况"、"定时初始化数据供其它业务使用"、"每隔2分钟轮询查数据库看某业务是否被审核通过,并提示用户"等等。 以上需求在开发中都非常常见,但它们仅仅属于低端一点的需求,稍高端一点的需求比如:" 客服派车给调度,如果调度...转载 2019-11-21 13:34:44 · 203 阅读 · 0 评论