需求

在处理定时任务大家可能都用过Quartz.NET,但在生产环境中大家肯定也遇到过如下的问题:

  1. 发布的时候需要停掉所有的Job,再整个一起打包发布
  2. 没有管理界面(其实在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(一)的更多相关文章

  1. 基于UML的高校教务管理系统的设计与实现

    一.基本信息 标题:基于UML的高校教务管理系统的设计与实现 时间:2018 出版源:南昌航空大学 领域分类:教育信息化:教务管理系统:UML:SSH:Oracle 二.研究背景 问题定义:高校教务管 ...

  2. DoNet开源项目-基于jQuery EasyUI的后台管理系统

    博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery EasyUI 后台管理系统布局分享,目前已完成系统的整体框架的搭建 ...

  3. <Dare To Dream 团队>第二次作业:基于B/S的家教管理系统

     团队项目GitHub仓库地址:https://github.com/Sophur/Team-Project.git  为其他团队评分结果: 小组名 N A B C D 总分 平均分 Blue Flk ...

  4. 基于SSH框架的考勤管理系统的设计与实现

    基于SSH框架的考勤管理系统的设计与实现

  5. 基于Android平台的会议室管理系统具体设计说明书

    会议室管理系统具体设计说明书 第一部分  引言 1.编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和參考本说明进行代码的 ...

  6. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心

    基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...

  7. 文献综述十七:基于 sql环境下超市管理系统的设计与实现

    一.基本信息 标题:基于 sql环境下超市管理系统的设计与实现 时间:2018 出版源:智能计算机与应用 文件分类:uml技术的研究 二.研究背景 从超市管理系统的实际应用出发,在系统分析过程中,从功 ...

  8. atitit.基于bat cli的插件管理系统.doc

    atitit.基于bat cli的插件管理系统.doc /AtiPlatf/src_atibrow/com/attilax/cmd/CmdX.java pathx.isWebPathMode=true ...

  9. 基于ASP.NET的新闻管理系统(一)

    1. 项目简介 1.1设计内容 (1)可以在首页查看各类新闻,可以点击新闻查看具体内容:可以查看不同类型的新闻,并了解热点新闻,可以在搜索框里输入要查找的内容. (2)在后台界面中,管理员可以修改密码 ...

随机推荐

  1. 关于Android真机调测Profiler

    U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因.   大概看了下官方的做法,看了几张帖子顺带把做法记录下来.   ...

  2. Linux网络流量实时监控ifstat iftop命令详解

    ifstat 介绍 ifstat工具是个网络接口监测工具,比较简单看网络流量 实例 默认使用 #ifstat        eth0                eth1       KB /s i ...

  3. Asus ubuntu Fn恢复

    sudo sed 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/GRUB_CMDLINE_LINUX_DEFAULT="qui ...

  4. 移动端使用HTML5表单增强体验

    我们知道,HTML5新增了许多表单类型,如: number,email,url,tel,datetime,month,datetime-local等等,像datetime,month这些非常方便,免得 ...

  5. Word2010撤销按钮失效,Ctrl+Z失效解决办法

    1.打开注册表编辑器.按Win+R,在运行框中键入regedit,然后单击“确定”. 2.在注册表编辑器中,展开到下列注册表子项: HKEY_CURRENT_USER\Software\Microso ...

  6. git clone简介

    翻译整理自: http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-clone.html  在使用 ...

  7. Form personization(Form 个性化)报无权限

    总部的同事利用form personization对工单的一些Form做了个性化,发现可能设的有问题,造成用户无法关工单.想要看一下她是怎么设的,可报没权限.经过研究发现,把个人Profile 的 U ...

  8. 转载 jquery $(document).ready() 与window.onload的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  9. java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

    try { //向指定的ip和端口发送数据~! //先说明一下数据是谁发送过来的! byte[] ip = InetAddress.getLocalHost().getHostAddress().ge ...

  10. [OpenCV] IplImage and Functions

    In this chapter, APIs will make U crazy. Good luck! Next, Review Linear Algebra.  Ref: http://blog.c ...