基于进程的Quartz.NET管理系统QuartzService(一)
需求
在处理定时任务大家可能都用过Quartz.NET,但在生产环境中大家肯定也遇到过如下的问题:
- 发布的时候需要停掉所有的Job,再整个一起打包发布
- 没有管理界面(其实在github也有几个这方面的项目,如:CrystalQuartz),不能很好的做到实时监控。
由于在生产环境中有以上的问题,所以我抽空就写了一个基于Quartz.NET的QuartzService。
原理
因为Quartz.NET中,任务的管理是其于线程的,所以在管理Job的时候并不能将Job隔离开来,所以才有了问题一。在QuartzService中我采用的是进程的方式进行管理。即一个执行程序包含一个Scheduler与一个Job,这样就对任务进行了隔离,但这也意味着更大的资源消耗。对此我的应对策略是一Scheduler可以包含多少Job但具体的实现可能需要读者自行参考两个项目。在后续的文章中我会介绍如何进行部署。
对于管理界面,则是采用的RemoteScheduler进行控制。因为QuartzService采用的是进程的方式运行任务,所以在管理上还加了对任务进程的管理。
对于任务的解耦
在QuartzService中并没有对于任务的调用,采用了反射的方式。这个主要出于两个方面的考虑:1.对于管理中可能出现的多版本的.NET Framework(我现在的项目中就有这个问题);2.将任务做成可配置,这样方便部署。但是以上两种考虑就造成了不能对Scheduler进行监听,对于这个这个问题读者可以自己再重写一个Scheduler管理程序。这个后续会做介绍。
Quartz.NET: http://www.quartz-scheduler.net/
QuartzService: https://github.com/BarlowDu/QuartzService
基于进程的Quartz.NET管理系统QuartzService(一)的更多相关文章
- 基于UML的高校教务管理系统的设计与实现
一.基本信息 标题:基于UML的高校教务管理系统的设计与实现 时间:2018 出版源:南昌航空大学 领域分类:教育信息化:教务管理系统:UML:SSH:Oracle 二.研究背景 问题定义:高校教务管 ...
- DoNet开源项目-基于jQuery EasyUI的后台管理系统
博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery EasyUI 后台管理系统布局分享,目前已完成系统的整体框架的搭建 ...
- <Dare To Dream 团队>第二次作业:基于B/S的家教管理系统
团队项目GitHub仓库地址:https://github.com/Sophur/Team-Project.git 为其他团队评分结果: 小组名 N A B C D 总分 平均分 Blue Flk ...
- 基于SSH框架的考勤管理系统的设计与实现
基于SSH框架的考勤管理系统的设计与实现
- 基于Android平台的会议室管理系统具体设计说明书
会议室管理系统具体设计说明书 第一部分 引言 1.编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和參考本说明进行代码的 ...
- 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心
基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...
- 文献综述十七:基于 sql环境下超市管理系统的设计与实现
一.基本信息 标题:基于 sql环境下超市管理系统的设计与实现 时间:2018 出版源:智能计算机与应用 文件分类:uml技术的研究 二.研究背景 从超市管理系统的实际应用出发,在系统分析过程中,从功 ...
- atitit.基于bat cli的插件管理系统.doc
atitit.基于bat cli的插件管理系统.doc /AtiPlatf/src_atibrow/com/attilax/cmd/CmdX.java pathx.isWebPathMode=true ...
- 基于ASP.NET的新闻管理系统(一)
1. 项目简介 1.1设计内容 (1)可以在首页查看各类新闻,可以点击新闻查看具体内容:可以查看不同类型的新闻,并了解热点新闻,可以在搜索框里输入要查找的内容. (2)在后台界面中,管理员可以修改密码 ...
随机推荐
- 物料分类账 [COML] PART 1 - 概览
物料分类账 [COML] PART 1 - 概览 一).原理 1). •实际成本/物料分类帐是产品成本控制模块的一个子模块,产品成本控制包括三个子模块,产品成本计划,成本对象控制,实际成本/物料分类帐 ...
- MFC一个类访问另一个类成员对象的成员变量值
MFC中一个类要访问另外一个类的的对象的成员变量值,这就需要获得原来那个类对象的指针,其实有好几种方法都可以实现. 比如维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互访问. ...
- js日期时间比较函数
转自:http://www.cnblogs.com/zxjyuan/archive/2010/09/07/1820708.html js日期比较(yyyy-mm-dd) function duibi( ...
- 在linux下配置静态IP
在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 开始编辑,填写ip地址.子网掩码.网关.DNS等.其中“红框内的信息”是必须得有的. 编 ...
- Swift 函数
1: 函数形式: Swift函数以关键字func 标示.返回类型->后写明.如果没有返回类型可以省去.多个参数用,分割.其中参数名字在前:类型描述 func GetName(strName:St ...
- sqlserver 字符串最后一次的位置,截取字符串
--reverse:字符串倒排 SUBSTRING(字段,1,len(字段)- CHARINDEX('-',REVERSE(字段)))
- 完成端口(Completion Port)详解(转)
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ...
- Unity3d导出Android的apk文件时相关问题的解决办法
今天上午着手将一个unity3d开发的小游戏build到android手机上运行,结果遇到了不少问题. 首先遇到的第一个问题是在build到一半的时候,弹出如下报错: Error building P ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- 用CSS让未知高度内容垂直方向居中
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...