在日常的开发中,运行定时任务基本上已经是很普遍的需求了,可以通过windows服务+timer组件来实现,也可以使用第三方框架来集成,Quartz.NET就是一款从JAVA的Quartz移植过来的一个不错的作业调度组件,但是当我们把作业都写好,并部署完成的时候,管理成为了很麻烦的 ...
在日常的开发中,运行定时任务基本上已经是很普遍的需求了,可以通过get='_blank'>windows服务+timer组件来实现,也可以使用第三方框架来集成,Quartz.NET就是一款从JAVA的Quartz移植过来的一个不错的作业调度组件,但是当我们把作业都写好,并部署完成的时候,管理成为了很麻烦的事情,因此我基于Quartz.NET,又简单做了一下封装,来实现作业动态管理。
首先作业动态管理包含以下几个核心点
- 应用程序动态加载器
- 作业管理(运行)池
- 动态启动/停止/卸载作业
Quzrtz.NET怎么用我这里就不再讲解了,百度上很多。
主要有三个核心模块,Job,Trigger和Schedule,
Job就是每一个作业,Trigger就是作业执行策略(多长时间执行一次等),Schedule则把Job和Tigger装载起来
Job和Tigger可以随意搭配装载到Schedule里面运行
接下来讲解实现的思路
先定义一个类库,类库只包含一个类,BaseJob ,里面只有一个Run()方法
之后我们实现的每一个作业都是继承自这个类,实现Run()方法即可(每个作业都作为一个独立的类库,引用这个只有一个类的类库)
public abstract class BaseJob:MarshalByRefObject,IDisposable{ public abstract void Run();}
原标题:基于Quartz.NET构建自己的动态作业调度器
关键词:.NET
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。