随笔分类 -  914-Quarzt.Net系列

摘要:一. 背景 我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "、"每天的0点需要统计前一天的考勤记录"、"每个月的1号计算上个月的库存情况"、"定时初始化数据供其它业务使用"、"每隔2分钟轮询查数据库看某业务是否被审核通过,并提示用户" 等等。 以上需求在开发中 阅读全文
posted @ 2018-06-23 07:46 Yaopengfei 阅读(10484) 评论(26) 推荐(33) 编辑
摘要:一. IIS部署 比如在MVC框架中集成了Quartz.Net定时调度,此时该调度系统会随着MVC框架被挂在IIS下,IIS会进程回收,所以大部分开发都会遇到Quartz挂在IIS下一段时间不好用。 补充:IIS可以设置定时自动回收,默认回收是1740分钟,也就是29小时。IIS自动回收相当于服务器 阅读全文
posted @ 2018-03-20 22:20 Yaopengfei 阅读(5695) 评论(7) 推荐(6) 编辑
摘要:背景: 默认情况下,Quartz.Net作业是持久化在内存中的,即 quartz.jobStore.type = "Quartz.Simpl.RAMJobStore, Quartz",这种模式有以下弊端: ① 想在A服务器上控制B服务器上已经发布了的job和trigger不方便; ② 很难实现Web 阅读全文
posted @ 2018-03-16 08:31 Yaopengfei 阅读(4440) 评论(13) 推荐(6) 编辑
摘要:一. RemoteScheduler远程控制 1. 背景: 在A服务器上部署了一个Scheduler,我们想在B服务器上控制这个Scheduler。 2. 猜想: A服务器上的Scheduler需要有地址、需要有端口、需要有名称(实际上也是如此)。 3. 需求: 一个控制台程序作为服务端运行A服务器 阅读全文
posted @ 2018-03-15 14:54 Yaopengfei 阅读(2821) 评论(7) 推荐(7) 编辑
摘要:一. 简介 揭秘: SimpleThreadPool是Quartz.Net中自带的线程池,默认个数为10个,代表一个Scheduler同一时刻并发的最多只能执行10个job,超过10个的job需要排队等待。 二. 四种配置方案 1. NameValueCollection的方式 需要利用StdSch 阅读全文
posted @ 2018-03-13 20:54 Yaopengfei 阅读(4513) 评论(5) 推荐(5) 编辑
摘要:一. 简介 1. 什么是哑火 由于某些原因导致触发器(trigger)在该触发的时候没有得到触发,后续对应的解决策略即为哑火策略。(个人理解) 2. 哑火触发的条件 ①:所有的工作线程都在忙碌,导致某些trigger得不到触发.(如:simplethreadpool 默认是10个工作线程,但我有15 阅读全文
posted @ 2018-03-12 15:23 Yaopengfei 阅读(3349) 评论(2) 推荐(7) 编辑
摘要:背景介绍及其使用 该章节主要补充介绍,在前一章四类触发器的基础上配合六大Canlander来动态删减某些时间,来满足更多的应用场景。 1. DailyCalendar:动态排除某天的某些字段. (需求:每天8-23点执行,每隔1s执行一次,但是21-22点这个区间不执行) 2. WeeklyCale 阅读全文
posted @ 2018-03-11 20:43 Yaopengfei 阅读(2356) 评论(2) 推荐(5) 编辑
摘要:一. WithSimpleSchedule(ISimpleTrigger) 1. 用途:时、分、秒上的轮询(和timer类似),实际开发中,该场景占绝大多数. 2. 轮询的种类:永远轮询和限定次数轮询. 3. 参数中的几个函数: A.执行间隔: ①.WithInterval(TimeSpan tim 阅读全文
posted @ 2018-03-10 23:39 Yaopengfei 阅读(3949) 评论(5) 推荐(5) 编辑
摘要:一. 简介 1. 几个类型: ①:TriggerBuilder:用来创建ITrigger实例 ②:ITrigger:触发器实例 2.常用的几个方法 ①.StartNow:Trigger马上触发. ②.StartAt和EndAt:设置Trigger触发的开始时间和结束时间 (省略设置开始时间的话,默认 阅读全文
posted @ 2018-03-09 13:08 Yaopengfei 阅读(3788) 评论(0) 推荐(2) 编辑
摘要:一. 五大构件 引言: Quartz.Net的五大构件 1. 调度器:Scheduler 2. 作业任务:Job 3. 触发器: Trigger 4. 线程池: SimpleThreadPool 5. 作业持久化:JobStore 二. Scheduler详解 1. 创建Scheduler的两种方式 阅读全文
posted @ 2018-03-08 08:47 Yaopengfei 阅读(5831) 评论(4) 推荐(3) 编辑
摘要:一. 时间的类型 1. 背景 这里为什么要介绍时间类型呢,明明是定时调度篇,原因是在定时任务中,任务什么时间开始执行,什么时间结束执行,要用到各种各样的时间模式,虽然这不能算是一个复杂的问题,但在正式介绍Quartz.Net之前,还是很有必要补充一下的,该章节就是解决这类问题的。 2. 时间类型 时 阅读全文
posted @ 2018-03-07 09:51 Yaopengfei 阅读(5048) 评论(2) 推荐(1) 编辑
摘要:一. 前奏-Timer类实现定时任务 在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类, DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是: ①.位于System.Windows.Forms里,即定时器控件,不过多介绍了 ②.位于Syst 阅读全文
posted @ 2018-03-06 08:14 Yaopengfei 阅读(4677) 评论(6) 推荐(2) 编辑