quartz.net任务调度:源码及使用文档
目录:
1.quartz.net任务调度:源码及使用文档
2.quartz.net插件类库封装
前言
前段时间把自己封装quartz.net 类库的过程总结到博客园,有网友想要看一下源码,所以就把源码传到github上去了,今天把地址分享给大家,程序中单元测试,写的太丑,所以就没网上传,故此我把使用文档在这也分享给大家一下,有什么问题,请点击我园子中的qq与我联系。
源码地址:https://github.com/kmonkey9006/Quatrz.Task
目的:
方便任务调度 的创建,删除,暂停与继续操作;提高任务在系统的可维护性与可扩展性。
使用流程:
1.web.config设置时间间隔与开始时间(便于维护)
<!--自动任务执行时间间隔(秒)by wyl-->
<add key=" />
<!--自动任务执行 by wyl-->
<add key="ReDoPaySchedulerStartTime" value="3:10"/>
2.在使用处调用类库方法:
2.1获取任务调度执行时间间隔与开始执行时间(这些值可以在代码中直接赋值)
static int times = Convert.ToInt32(Synjones.Common.Config.Config.AppSettings("ReDoPaySchedulerTimeBySeconds"));
);
2.2创建任务调度
);
注:standardsd:系统编码(syscode)
Jobid:任务id(jobid)
轮询缴费:任务名称(name)
山东大学:任务群组名称(group)
DoRePay:任务调度触发动作。(action)
startTime:任务开始时间(starttime)
times:任务间隔时间(internaltimes)
0:最大执行次数(0表示无限次)(maxtimes)
3.在不停止服务端的情况下暂停与继续任务
修改任务持久化文件,默认地址为~/Files/jobs/
当State为Working时表示任务正常执行
当State为Pending/Empty时表示任务正常执行(注意大小写,写错则按Working执行)
调用说明:
|
调用说明 |
|
|
对象初始化 |
New QJob(string syscode, string id, string name = "", string group = "") |
|
参数说明 |
Syscode:系统编码 Id:jobid Name:任务名称 Group:任务群组 |
|
其他说明 |
Syscode+jobid:标志者任务的唯一性 Name,group:可为空但建议写上,以便于更容易操作任务持久化文件 StartTime:开始时间默认为 DateTime.Now.AddMinutes(1) Maxtimes:最大执行次数默认为0 Internaltimes:时间间隔默认为1个小时 |
|
持久化文件存放地址赋值 |
JobFactory.Instance.SetPath(string path) |
|
参数说明 |
文件路径必须以@“\”结尾,不进行赋值默认地址为~\File\jobs\ |
|
任务触发动作 |
Handle(Action handler)和Handle(Action<IQJob> handler) |
|
参数说明 |
两者参数的却别在于一个有回调参数(IQJOB),一个没有参数 |
|
创建任务(1) |
Start(DateTime starttime, int internaltimes , int maxtimes) |
|
参数说明 |
Starttime:开始时间 internaltimes :任务执行间隔 maxtimes :最大执行次数 |
|
创建任务(2) |
Start() |
|
参数说明 |
直接执行创建job任务调度 |
|
移除任务 |
IQJob.Remove() |
|
说明 |
根据IQJob进行删除(syscoed与jobid确定其唯一性) |
|
暂停任务 |
IQJob.Pause() |
|
说明 |
根据IQJob进行暂停(syscoed与jobid确定其唯一性) |
|
继续任务 |
IQJob.Resume() |
|
说明 |
根据IQJob进行Resume(syscoed与jobid确定其唯一性) |
|
修改任务触发动作 |
JobFactory.Instance.Trigger(string system_code, Action action) JobFactory.Instance.Trigger(string system_code, Action<IQJob> action) |
|
参数说明 |
system_code:系统编码 Action:触发动作 |
|
持久化操作 |
JobFactory.Instance.Initialize(); |
|
说明 |
获取持久化文件,进行反序列化,然后把对象进行任务调度创建。 |
注意:
(1)系统编码和任务id组合必须唯一。
(2)开始执行时间最好在系统操作不频繁时间段(在服务平台和山东大学我用的是3:10)
(3)创建任务调度时,如果当前时间大于开始时间,任务在没创建之前就会事先执行一次。所以希望在创建任务的时候开始时间不要用datetime.now。用指定时间或者用DateTime.Now.AddMinutes(1)
(4)基于(3)的说明,开始时间如果指定为2016-06-06 3:10 ,当在这时间之后如果服务器down掉,重新启动系统时,不管是不是在3:10之后,系统均会执行一次
案例:
(1) new QJob("syscode", "jobid", "name", "group").Handle(job_handler).Start(DateTime.Now.AddSeconds(30), 2, 10);
(2) new QJob("syscode", "jobid", "name", "group").Handle(job_detail_handler).Start();
(3) new QJob("syscode", "jobid", "name", "group").Remove();
(4) new QJob("syscode", "jobid").Remove();
(5) new QJob("syscode", "jobid", "name", "group").Pause();
(6) new QJob("syscode", "jobid").Pause();
(7) new QJob("syscode", "jobid", "name", "group").Resume();
(8) new QJob("syscode", "jobid").Resume();
quartz.net任务调度:源码及使用文档的更多相关文章
- 在MyEclipse显示struts2源码和doc文档及自动完成功能
分类: struts2 2010-01-07 16:34 1498人阅读 评论(1) 收藏 举报 myeclipsestruts文档xmlfileurl 在MyEclipse显示struts2源码和d ...
- eclipse导入java和android sdk源码,帮助文档
eclipse导入java和android sdk源码,帮助文档 http://blog.csdn.net/ashelyhss/article/details/37993261 JavaDoc集成到E ...
- 【C#附源码】数据库文档生成工具支持(Excel+Html)
[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...
- MyEclipse10查看Struts2源码及Javadoc文档
1:查看Struts2源码 (1):Referenced Libraries >struts2-core-2.1.6.jar>右击>properties. (2):Java Sour ...
- Mahout源码分析之 -- 文档向量化TF-IDF
fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3775429.html Mahout之SparseVectorsFromSequenceFi ...
- MyEclipse查看Struts2源码及Javadoc文档
一.查看Struts2源码 1.Referenced Libraries >struts2-core-2.1.6.jar>右击>properties. 2.Java Source A ...
- 【C#附源码】数据库文档生成工具支持(Excel+Htm)
数据库文档生成工具是用C#开发的基于NPOI组件的小工具.软件源码大小不到10MB.支持生成Excel 和Html 两种文档形式.了解更多,请访问:http://www.oschina.net/cod ...
- 基于SpringBoot的药店管理系统java药房管理系统(源码+数据库文件+文档)
注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SpringBoot 前端技术:HTML+CSS+JavaScript+Bootstrap+jQue ...
- 如何在IntelliJ IDEA在线查看源码的API文档
https://blog.csdn.net/IFollowRivers/article/details/81604463
随机推荐
- E - Super Jumping! Jumping! Jumping!
/* Nowadays, a kind of chess game called "Super Jumping! Jumping! Jumping!" is very popula ...
- Java异常处理和设计
在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...
- 用机器名访问和用Localhost访问时在IE中的区别(备忘)
meta中未指定文档模式的时候, localhost访问文档模式默认是Edge 机器名访问时文档模式默认是IE7 <head>中添加 <meta http-equiv="X ...
- 在canvas中使用html元素
让div悬浮于canvas之上 使用z-index控制层及顺序 慕课网canvas demo <div id="canvas-wrapper"> <canva ...
- onscroll事件,onresize事件
js获取页面元素高度.宽度 网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: do ...
- 一、基于hadoop的nginx访问日志分析---解析日志篇
前一阵子,搭建了ELK日志分析平台,用着挺爽的,再也不用给开发拉各种日志,节省了很多时间. 这篇博文是介绍用python代码实现日志分析的,用MRJob实现hadoop上的mapreduce,可以直接 ...
- Java都有什么进阶技术
Java都有什么进阶技术? 看到有人给题主推荐<代码整洁之道>,评论有人说那不是JAVA进阶的书- 私以为,一些人对JAVA进阶的理解片面了,JAVA不过也是一门语言,提升和进阶还是内 ...
- Centos6.5 Zabbix3 server端安装(一)
一.准备阶段: 1.>关闭防火墙 /etc/init.d/iptables stop 2.>关闭selinux vim /etc/selinux/config SELINUX=disabl ...
- android学习链接
Android studio/Gradle学习资源:http://www.cnblogs.com/licheetec/p/4475426.html
- Java表格的简单使用一
JTable组件使用的是模型/视图/控制器的设计方式,将可视化组件从其数据中分离出来,因此表格中的数据都封装在数据模型中.其中最重要的支持类就是TableModel类,这个类用来定义JTable类以及 ...