Quartz.Net分布式任务管理平台(第二版)
前言:在Quartz.Net项目发布第一版后,有挺多园友去下载使用,我们通过QQ去探讨,其中项目中还是存在一定的不完善。所以有了现在这个版本。这个版本的编写完成其实有段时间了一直没有放上去。现在已经同步到GitHub上了。那么还是说一下这个版本改进的地方吧。有些东西之前讲过就不在提了,可以移步之前的文章先了解,同时此版本提供.Net Core 版本。具体看文章底部链接。
看一下VS中的项目结构的改变:
可以看出我们移除了原先的Quartz.Net_JobBase类库,Quartz.Net_Web更新为JobManagerByQuaertz,同时添加了Quartz.Net_Core和Quartz.Net_Infrastructure类库。
此次改进主要提现在了Quartz.Net_Core,Quartz.Net_Infrastructure,Quartz.Net_RemoteServer这三个类库上,现在们依次看一下相应的功能和改动。
1.Quartz.Net_Core的类库包含如下:
提供了Quartz.Net核心操作:(1)JobCommon中提供了JobKey和TriggerKey的构造(2)JobExcute为原先的Quartz.Net_JobBase实现了Quartz.Net执行任务的接口(3)JobTriggerAbstract为抽象类为Quartz多任务类型提供了公用方法的封装(4)JobTriggerImplements为具体任务类型实现类,在第一个项目中我们实现了Cron类型也是最为丰富的任务类型,但是有些园友可能需要一种简单的任务类型比如只执行一次,多长时间内执行多少次到达运行设置的结束次数或者时间自动完成不在执行,此任务类型为Simple,如果园友想实现其他类型 自行添加 集成抽象类即可。
2.Quartz.Net_Infrastructure的类库图如下:
这个大家应该就很熟悉了,一些基础设施。(1)HttpClientUtil和RsaCryptionUtil共同构成了http请求和请求加密基础(2)IPUtil提供了获取Quartz.Net_RemoteServer部署后运行获得对应机器的IP便于日志分析(3)提供发邮件提醒功能会在任务异常,服务挂的时候进行对应邮件提醒(4)QueryableExtensionUtil提供了Queryable扩展方法会在Repository中使用。
3.Quartz.Net_RemoteServer类库如下:
此类库为Quartz服务端我们相比之前增加了(1)观察者来观察任务状态变化通过执行发送更改状态,记录日志,发送邮件等(2)Job的监听器来监听任务执行后操作,Scheduler监听来监听节点状态(3)QuartzServer将主程序入口的节点主要配置 提供节点的暂停,启动,恢复等操作。其实我们想要分布式我们需要更改这个属性才能达到不然节点在任何服务器上安装后的tcp连接都是127.0.0.1+你设置的端口号
(因为没有找到具体的文档在源码中看到设置的这个属性)
最后Web层也是提供了操作,异常的全局日志记录。
GitHub地址:https://github.com/NeverGiveUpChange/TaskManagerByQuartz.Net;
https://github.com/NeverGiveUpChange/TaskManagerByQuartz.Net_.NetCore(.Net Core 版本)
Quartz.Net分布式任务管理平台(第二版)的更多相关文章
- Quartz.Net分布式任务管理平台
无关主题:一段时间没有更新文章了,与自己心里的坚持还是背驰,虽然这期间在公司做了统计分析,由于资源分配问题,自己或多或少的原因,确实拖得有点久了,自己这段时间也有点松懈,借口就不说那么多 ...
- Quartz.Net分布式任务管理平台(续)
感谢@Taking园友得建议,我这边确实多做了一步上传,导致后面还需处理同步上传到其他服务器来支持分布式得操作.所有才有了上篇文章得完善. 首先看一下新的项目结构图: 这个图和上篇文章中 ...
- Quart.Net分布式任务管理平台
无关主题:一段时间没有更新文章了,与自己心里的坚持还是背驰,虽然这期间在公司做了统计分析,由于资源分配问题,自己或多或少的原因,确实拖得有点久了,自己这段时间也有点松懈,借口就不说那么多 ...
- Quart.Net分布式任务管理平台(续)
感谢@Taking园友得建议,我这边确实多做了一步上传,导致后面还需处理同步上传到其他服务器来支持分布式得操作.所有才有了上篇文章得完善. 首先看一下新的项目结构图: 这个图和上篇文章中 ...
- Quartz.NET总结(五)基于Quartz.net 的开源任务管理平台
前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblogs.com/zhangweizhong/c ...
- Quartz.net 的开源任务管理平台
Quartz.net 的开源任务管理平台 前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblog ...
- 分布式文件系统MFS(moosefs)实现存储共享(第二版)
分布式文件系统MFS(moosefs)实现存储共享(第二版) 作者:田逸(sery@163.com) 由于用户数量的不断攀升,我对访问量大的应用实现了可扩展.高可靠的集群部署(即lvs+keepali ...
- 转载《分布式任务调度平台XXL-JOB》
<分布式任务调度平台XXL-JOB> 博文转自 https://www.cnblogs.com/xuxueli/p/5021979.html 一.简介 1.1 概述 XXL-J ...
- 分布式任务调度平台XXL-JOB
<分布式任务调度平台XXL-JOB> 一.简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并 ...
随机推荐
- Python数据清洗基本流程
# -*- coding: utf-8 -*-"""Created on Wed Jul 4 18:40:55 2018 @author: zhen"" ...
- go xorm增删改查
1.增加 如果传入的bean不是完整的bean,并且传入了地址,则调用结束后会被赋值// InsertOne insert only one struct into database as a rec ...
- php中编码转换方法
php里经常用到编码转换,在这记录一个常用的编码转换方法,字符串.数组.对象都可以使用,使用了递归来解决,比较普通 /* * php中编码转换 * @param $param 需要转换的数据 * @p ...
- 【PAT】B1002 写出这个数
思路: 1.以字符串形式输入数据,计算结果 2.使用sprintf将结果数字转换为字符串(将数字每一位分开) 3.分别输出字符每一位 1,笨方法,用的ifelse来判断输出 #include<s ...
- Ulua对象管理方式
不管是C++中还是在C#中,在都绕不开一个问题:类对象怎么在Lua中使用的问题,还好Lua提供了Userdata以及ligh Userdata结构类型,通过扩展可以处理这方面的问题.现在的很多框架也大 ...
- 拓普微小尺寸TFT液晶屏-高性价比
智能模块(Smart LCD)是专为工业显示应用而设计的TFT液晶显示模块. 模块自带主控IC.Flash存储器.实时嵌入式操作系统,客户主机可把要存储的数据(如背景图.图标等)存储到屏的flash中 ...
- Nginx使用教程(一):下载并编译安装Nginx
安装依赖 <br\>我们已经选择下载程序源代码进行手动编译,而不是使用软件包管理器(如Yum,Aptitude或Yast)进行安装. 这个选择有两个原因. 首先,软件包可能不包含在您的Li ...
- 使用vue-cli脚手架创建的项目结构详解
项目整体目录结构预览 src目录 src整体结构 开发过程中基本上操作都在该目录下进行操作的,项目所有源码都是在这个目录下 main.js文件,项目核心文件 App.vue文件,项目入口文件 rout ...
- python六十二课——高阶函数之filter
高阶函数之:filter函数:过滤数据的,最终返回一个惰性序列对象(filter对象,迭代器对象)解释:filter的意思:在计算机领域中我们都称为过滤器格式:filter(fn,lsd):参数和ma ...
- SpringMVC: web.xml中声明DispatcherServlet时一定要添加load-on-startup标签
游历SpringMVC源码后发现,在web.xml中注册的ContextLoaderListener监听器只是初始化了一个根上下文,仅仅完成了组件扫描和与容器初始化相关的一些工作,并没有探测到具体每个 ...