码迷,mamicode.com
首页 > Web开发 > 详细

Quartz.net自定义类库接口 使用说明文档

时间:2016-06-06 18:54:14      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:

前言:

前端时间共享了quartz.net。有给要源码的,其实贴出的代码已经写的很清楚,有可能没有类库的操作说明,所以今天就写了一个操作说明,希望能有所帮助。

先贴出quartz.net类库的地址:

quartz.net插件类库封装

 

目的:方便任务调度 的创建,删除,暂停与继续操作;提高任务在系统的可维护性与可扩展性。

使用流程:

1.引用..\svn\ref\thirdparty\quartz\net40文件夹下所有dll

2.配置web.config,如下图

 技术分享

 

3.在使用处调用类库方法:

  3.1获取任务调度执行时间间隔与开始执行时间(这些值可以在代码中直接赋值)

 技术分享

  3.2创建任务

   new QJob("standardsd", "jobid", "轮询缴费", "山东大学").Handle(DoRePay).Start(startTime, times, 0);

  注:standardsd:系统编码(syscode)

           Jobid:任务id(jobid)

           轮询缴费:任务名称(name)

           山东大学:任务群组名称(group)

           DoRePay:任务调度触发动作。(action)

          startTime:任务开始时间(starttime)

           times:任务间隔时间(internaltimes)

           0:最大执行次数(0表示无限次)(maxtimes)

 

          

4.在不停止服务端的情况下暂停与继续任务

修改任务持久化文件,默认地址为~/Files/jobs/

StateWorking时表示任务正常执行

StatePending/Empty时表示任务正常执行(注意大小写,写错则按Working执行)

 技术分享技术分享

 

 

注意:

1)系统编码和任务id组合必须唯一。

(2)开始执行时间最好在系统操作不频繁时间段(在服务平台和山东大学我用的是310

(3)创建任务调度时,如果当前时间大于开始时间,任务在没创建之前就会事先执行一次。所以希望在创建任务的时候开始时间不要用datetime.now。用指定时间或者用DateTime.Now.AddMinutes(1)

(4)基于(3)的说明,开始时间如果指定为2016-06-06 3:10 ,当在这时间之后如果服务器down掉,重新启动系统时,不管是不是在3:10之后,系统均会执行一次

调用说明:

调用说明

对象初始化

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();

说明

获取持久化文件,进行反序列化,然后把对象进行任务调度创建。

 

案例如下:

技术分享
1new QJob("syscode", "jobid", "name", "group").Handle(job_handler).Start(DateTime.Now.AddSeconds(30), 2, 10);

 (2new QJob("syscode", "jobid", "name", "group").Handle(job_detail_handler).Start();

(3new QJob("syscode", "jobid", "name", "group").Remove();

(4new QJob("syscode", "jobid").Remove();

(5new QJob("syscode", "jobid", "name", "group").Pause();

(6new QJob("syscode", "jobid").Pause();

(7new QJob("syscode", "jobid", "name", "group").Resume();

(8new QJob("syscode", "jobid").Resume();
View Code

 

Quartz.net自定义类库接口 使用说明文档

标签:

原文地址:http://www.cnblogs.com/kmonkeywyl/p/5564542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!