回到目录

对于任务调度来说,越来越多的团队选择了quartz,它在java和.net环境下表现都十分优秀,配置简单,功能强大,时间表达式配置灵活,但在使用时,还是感觉缺点什么,怎么说,你在服务器上安装了一个任务,然后然它们去运行,我们在客户端或者一个web网站里,如果对服务端的任务进行管理呢,这是一个大难题,而今天我要写的就是如何去实现这样一个任务管理器!

小知识

quartz为我们提供了远程模式,即可以监听一个端口,用来等待客户端去调用,呵呵

CrystalQuartz用来创建远程链接对象

  private static RemoteSchedulerProvider remoteSchedulerProvider = new CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider();
remoteSchedulerProvider.SchedulerHost = System.Configuration.ConfigurationManager.AppSettings["SchedulerHost"];

效果预览

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2oAAACDCAIAAABz6n+LAAAOAElEQVR4nO3du5HjuBYA0M6JeYylJMaXMXnInQjak7VxqJ77amojeCn0M7pFkcSHF6J+PTintrYkCgB/F+AlKPW8fZz9+oY+AAB4rLfx1a9fv/7z33+/0X/SRwCAx5M+AgDQQPoIAEAD6SMAAA2kjwAANJA+AgDQIJQ+vr291ReOr7ML6+1cUUb6CADwLCvp49vcdEma873lVFLDbIF6C9JHAIDnan54XZmJTOcgSzOU2bxw0cjqTKT0EQDg8dZnHyvpXXb2MX1bmnqsZKj1eUfpIwDAs6zPPqYzi9P0LvugOfsikj6mGaeH1wAAL6WWPma/hpidg8ymkpEq2Uyx8pH0EQDguZp/eR3JBeuzmNkUs7U16SMAwFNc88vrSvpYyQtXM85sZllJJaWPAACPd+PZx7RkPH1sKiZ9BAB4itAvr0v/X0wcbpx9lD4CALy+lZ/ORF6UZhyvSB+zT7SljwAAryP0h3vSGcfK3OHq7GOpTGlGU/oIAPA6mv/Vmdf5T/oIAPB40kcAABpIHwEAaCB9BACggfQRAIAG0kcAABrM0sdv54kHDgCgT2/rRQAA4Ez6CABAA+kjAAANpI8AADSQPgIA0ED6CABAg7d3AAAIe/sDAABh0kcAABpIHwEAaCB9BACggfQRAIAG0kcAABpIHwEAaCB9BACggfQRAIAG0kcAABoU08dhGIZhCLZyw8KLTyuFgytt2jYAAOpqs49j4jUkriiWlo98FC9c2bbghgEAsGrrw+srsrFSlUWG9/Pnz3Rh2kglKRyG4ffv39OP5I4AABttSh8XOdxqyfpc4OL1z58/K5lf/W1l7dfuKwAAf/6U0scx2frx40c95/tzVWoYfF1KEOufZnekVBEAgCYr33388ePH9G2aeGUTsvqSptfZF4tH0pU1LupWthkAgIho+ljKHdNMLls4njJOVdaSFk4rVrYHAIDrhNLHUsLXuqSe7VVer043VrLGSH4JAEDQevq4moG1JpStr7NLIulja0kAAFY1fPdxurw1fYx8+pT08Z9//vlc8vv37ysWAgD0pvavzmS/15gtecP0capSK5g+tm4bAAB1tT/cM31dye1KhUurjKR62TazhYMbVmoHAIAmW//VGQAAuiJ9BACggfQRAIAG0kcAABpIHwEAaCB9BACggfQRAIAG0kcAABpIHwEAaPD2DgAAYW8fsMH7+/uzNwHuTpxDhJ7SD+kjmxgs6IE4hwg9pR/SRzYxWNADcQ4Reko/pI9sYrCgB+IcIvSUfkgf2cRgQQ/EOUToKf2QPrKJwYIeiHOI0FP6IX1kE4MFPRDnEKGn9EP6yCYGC3ogziFCT+mH9JFNDBb0QJxDhJ7SD+kjmxgs6IE4hwg9pR8r6eMwDMMwrLYSLNZUkm8hMljcMIrED0/x4DgPWjTV1HKp7lBwkw3mr/fcK8JqlSuCWU8paUsfsweo6SD2dnz/elcMFluiqNJ1b7E3kPfIOC+VKZUsvU2bqtTNLqkvh9SzrgjZt5V2Fm3qKVeopY/ZI5uWOR6P048qRzAYEHwjq4PFDaOoVEAUcW+PjPP0o8jlqt5l0k/jvUb/Iu4pV4ShoLL2elORKvHG/1ah9DH7Nls4OBoG2+T1xQeL7Nts4dWRIn4Nhpt4WJxnWyhd0j4dDodS4cVFMWssObYztehrUPeUK0L9WlAJfj1li2L6mJ6z0qHJnoYhGezSg9vbsf4r1QeLG0bRohuX+jbcw8PiPNtCtsw4qGYvZsP8ypodkxcbvEhDPwrjNlQ864pQaa3UlbKv9ZS4fPqYPRalw5o96Ol5TVvu6kD/rSqDxT2iKFtSLHFvD47zj0CED5P0Mf1ouqLV9j9cFLmR514RstFe6krpaz2lyfrD65Js4dX1larzTQUfVdwkiiKjANzDw+K83s4i7Cuzj4sVVV6MJT2SY7tnXRE2rlFPucLW7z62xkGwMN/FTb7pEgmMbEcVQjzGw+I820JaZlwytHz3cVyYnQQyp8J2r3xFqHyqp1zhNj+dqZdcnOB6Xb6XG35ROl7yY+3iCrf1+DhfjfAhmX2sVHRR5DFe9oowBvNut0sL6ClXeET6WF/e2xH/yzx4sPhc6JfXPNhT4ny1tdI1b/F6VF+FR3Js95pXhGlP2e12pcb1lCY3SB9XD/dieda128+T3WqwiHTa0gAhhLi3h8V5vLXxilV5cje+jvSv9Cc49X2B1HOvCKUuMH37mT4uPtJTrtD8Z8Pr5z4tkG1wdSHfxXV/JHZLFGWbEkXc1SPjPF1YWTK0T8aXtq30C26di7inXBEWVSqFh0n6uEpPqVv5RwuhLvJPVMF3J84hQk/ph/SRTQwW9ECcQ4Se0g/pI5sYLOiBOIcIPaUf0kc2MVjQA3EOEXpKP6SPbGKwoAfiHCL0lH5IH9nEYEEPxDlE6Cn9kD6yicGCHohziNBT+iF9ZBODBT0Q5xChp/RD+sgmBgt6IM4hQk/px9s7AACEmX1kk3f3mnRAnEOEntIP6SObGCzogTiHCD2lH9JHNjFY0ANxDhF6Sj+kj2xisKAH4hwi9JR+SB/ZxGBBD8Q5ROgp/ZA+sonBgh6Ic4jQU/ohfWQTgwU9EOcQoaf0Q/rIJgYLeiDOIUJP6Yf0kU0MFvRAnEOEntIP6SObGCzogTiHCD2lH9JHNjFY0ANxDhF6Sj+kj2xisKAH4hwi9JR+lNPH02E3nO0Op+Tz4z6z/Liv1qk67odh2B/bKuXXva2hrz1v3oEurQwWomi6A2PjYuu7CVwUT4fDcfJmtzjVl64wRlUkHs7VJqF4rlaJzqTl5dqnHXO2/vxerPWEWa1Q/033K7On67Wm/VWvegXhK8LyHF5OX6RMxrLMNMbLQVVo+bg/1yleEo6HSZ3w2J6vVd6+0l7M2gns16zHb7iwTa3MPp4O+/I2HveLIzVdcNxPznxwY0+HXdtuTVv+PJrnJmrHNrQ9yc6RFbnXFEVf23V+E94XXkU9zr+G5vGsXmLwfNZnZ/+z4CU4LpeqXMP748e0/rlauVLacrL2r3Tvq+DXu8xerG9hUmv9wpbdr8yeBmqNqzJev4pqT0k7xsdxP8wDOlImIy0zu6cpKLR83O92X1uRvSR85mbTC9Ww3Ob8yhZp8j7Sv5K9WLYT2a+xmebrY8WN08fcdlWOTLK2th3LtBxoIrY9hqOYe6SPf2UU3bLX8nDrcT49wZlboOmd0GF5wSrdT0yuReP1K3Drkbacrj3ZznQvCrUyTwzmwZ1NH2e10v3K7GmiXEbneh1r6ePlFO4Pp0WsLu+0imVSmTKB9DHf8ulwOK5H2HxuYD+tfKmUTPTNd+B0OqePi1n46dvsXtQTlPIRu2li05A+Jo9jjvvdfr9bLBqyj1nG29NxEJkeo8m06mWfp+s67odhsa6k5XEjFyd9ts25WvlZZ+ljTGv62G0UpQE13kNObyYX60r3NLMX3F9b+jibQJmFzW6/T65DX/1j/jx5GPbH2U3KZwCdDrv94TA5+5laScvFta+kj5VtLu/7x+lw2K88Xk/3K10SqbVSgScIfvfxK2GaTtYlKVqxzPx58rA7nHLtHA/l0b5c66vTtKWP536436+FYma6pNJRMntRameqeFRvfJ8VTh8n6508PbkMjMur/eyhXXbEOi+/7OpY8pKLnzdgXFd+kJ5scP5YFaeBpvPH0/NhRIppSx87jqJxa2bfSVmMHdnjk+7XsFzEvbWlj5M7l/3+/PT6kiPOTlptpMmmWZOzXx+jZuGaXftK+ljc5vq+fxyPY6jnq900fdQLXkrsipA8n/5Ix9T1MrMWM4ng8VjvKZla56G8MX0cZ/nX7unzwV17mJXfi6vSx1tnNdH0cfFMY/c5pZxeGy8Vx/JrF/5LM5clye10ehFNW65+nK5lUiUzcSR9jGlKH3uOovy+JHew5eMzSR8rU5rcR2v6OErDfB5Fa78UWQTcPDT3xbM/bzm/9rX0sV6yVGsq/lA+XRKpNV/IK1jtKZfb3693mcEwUiZptVym2FMyj85Px9xvVerp48r1pFArtIWlMlc8vI5/ASwqPPs42570q9+fQ+QhN9qMl/Pj/OKXflM2XTKqXvjPN7vLqpltXtaaDD5mH6/RNvvYcxRl5keTMKsdn/Gzcg7L3TSmj+eTfUq+/F+4Dzjmz+NYP9NQ5ewvW86tfVEusxelWvV9n3WGyk+CFvuVvojUmvWY9V/scH+rPzIbh9DPWbXJuHb5qwCrZVJJmdDPWYotN80+Tm/WVjKH+T3Z+haWyqyuJnNUL715/TdFIfn0MRn8vhbOp1eOh13xj0HMr6HTRP7SzO78SOS86LJkMnW0P57f7Q6n0/xXfvOWx/eVbU5qneZfHfq6EU7vPsirDBaiaBFFp+l31mbTo7O8Y76udE+z9biv0C+vM+c6c2azMVM8k5WGSnVyLS/Xnmu5vBfJV5EnPSGtNe92+VqV/Zr2y0x2m9++Ye2hIQ9S7SmzR0KTu4zM22qZWuOzpG49NHItL7tYUuayjclWL7vGog/MCmX716JWZi+W7SzXs3pUb3XdKMw+zn9zACW1wUIU3YWJ8Sfwx5AhQk/ph391hk0MFg+2nCvlIcQ5ROgp/ZA+sonBgh6Ic4jQU/ohfWQTgwU9EOcQoaf0Q/rIJgYLeiDOIUJP6Yf0kU0MFvRAnEOEntIP6SObGCzogTiHCD2lH9JHNjFY0ANxDhF6Sj+kj2xisKAH4hwi9JR+SB/ZxGBBD8Q5ROgp/ZA+sonBgh6Ic4jQU/rx9g4AAGFv/wMAgDDpIwAADf4Pw9l+eqKuCFoAAAAASUVORK5CYII=" alt="" />

aaarticlea/png;base64,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" alt="" />

说做就做

        /// <summary>
/// 恢复开始任务
/// </summary>
/// <param name="jobName"></param>
/// <param name="group"></param>
/// <returns></returns>
public ActionResult Start(string jobName, string group)
{
remoteSchedulerProvider.Scheduler.ResumeJob(new JobKey(jobName, group));
return RedirectToAction("Index");
}
/// <summary>
/// 暂停任务
/// </summary>
/// <param name="jobName"></param>
/// <param name="group"></param>
/// <returns></returns>
public ActionResult Stop(string jobName, string group)
{
remoteSchedulerProvider.Scheduler.PauseJob(new JobKey(jobName, group));
return RedirectToAction("Index");
}

上面代码可以实现界面中的“开始”和暂停“两个功能,主要是对trigger进行控制的,值得注意的是,如果你修改的时间表达式,需要从新启动服务才会生效!

回到目录

我心中的核心组件(可插拔的AOP)~调度组件quartz.net续~任务管理器的开发的更多相关文章

  1. 我心中的核心组件(可插拔的AOP)~大话开篇及目录

    回到占占推荐博客索引 核心组件 我心中的核心组件,核心组件就是我认为在项目中比较常用的功能,如日志,异常处理,消息,邮件,队列服务,调度,缓存,持久化,分布式文件存储,NoSQL存储,IoC容器,方法 ...

  2. 我心中的核心组件(可插拔的AOP)~第二回 缓存拦截器

    回到目录 AOP面向切面的编程,也称面向方面的编程,我更青睐于前面的叫法,将一个大系统切成多个独立的部分,而这个独立的部分又可以方便的插拔在其它领域的系统之中,这种编程的方式我们叫它面向切面,而这些独 ...

  3. 助力深度学习!阿里开源可插拔 GPU 共享调度工具

    根据 Gartner 对全球 CIO 的调查结果显示,人工智能将成为 2019 年组织革命的颠覆性力量.对于人工智能来说,算力即正义,成本即能力,利用 Docker 和 Kubernetes 代表云原 ...

  4. 我心中的核心组件(可插拔的AOP)~第四回 异常拦截器

    回到目录 之前说过有关拦截器的文章,第二回  缓存拦截器,事实上,在那讲里说的最多是AOP和缓存组件,对于拦截的概念并没有详细的说明,这一讲,不说AOP,主要说一下拦截器,拦截器Interceptio ...

  5. 我心中的核心组件(可插拔的AOP)~第五回 消息组件

    回到目录 之所以把发消息拿出来,完全是因为微软的orchard项目,在这个项目里,将公用的与领域无关的功能模块进行抽象,形成了一个个的组件,这些组件通过引用和注入的方式进行工作,感觉对于应用程序的扩展 ...

  6. 我心中的核心组件(可插拔的AOP)~第六回 消息组件~续

    回到目录 上一回写消息组件已经是很久之前的事了,这一次准备把消息组件后续的东西说一下,事实上,第一篇文章主要讲的是发消息,而这一讲最要讲的是收消息,简单的说,就是消息到了服务器之后,如何从服务器实时的 ...

  7. 我心中的核心组件(可插拔的AOP)~调度组件quartz.net

    回到目录 quartz.net是一个任务调度组件,它可以灵活的设置你的调试方式,按时间,按日期,按周期都可以很容易的实现,quartz不仅可以用在web中,而且还可以部署在winform,winser ...

  8. 我心中的核心组件(可插拔的AOP)~第十二回 IoC组件Unity

    回到目录 说在前 Ioc组件有很多,之前也介绍过autofac,castle等,今天再来说一下在微软Nlayer DDD架构里使用的unity组件,今天主要说一下依靠注入,如果希望看拦截的用法,可以阅 ...

  9. 我心中的核心组件(可插拔的AOP)~第十三回 实现AOP的拦截组件Unity.Interception

    回到目录 说在前 本节主要说一下Unity家族里的拦截组件,对于方法拦截有很多组件提供,基本上每个Ioc组件都有对它的实现,如autofac,它主要用在orchard项目里,而castle也有以拦截的 ...

随机推荐

  1. java8 ArrayList源码阅读

    转载自 java8 ArrayList源码阅读 本文基于jdk1.8 JavaCollection库中有三类:List,Queue,Set 其中List,有三个子实现类:ArrayList,Vecto ...

  2. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  3. gulp 配置前端项目打包

    项目发布时,需要对项目js文件进行压缩,混淆,连接等操作以减小项目http请求,加快访问. gulpjs.com中有很多插件可以用来配置打包部署. 需要用的常用插件有: gulp-jsmin  压缩j ...

  4. IB交换机配置命令总结

    串口通过远程CRT登录,波特率9600用户名和密码都是adminDo you want to use the wizard for initial configuration?选择no打开ip rou ...

  5. Postman-CI集成Jenkins

    Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Newman 官方说明:Postman's command-line companion lets you ...

  6. 如何解决SoftekBarcode.dll加载失败的问题

    本文转自:慧都控件网 Softek Barcode Reader Toolkit是专门从事于条形码读取技术的软件公司Softek旗下一款著名的条码读取工具包.最近有部分用户反映在运行此工具包时会遇到“ ...

  7. [原] XAF ListView 凍結列

    using System; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostic ...

  8. 人脸识别经典算法三:Fisherface(LDA)

    Fisherface是由Ronald Fisher发明的,想必这就是Fisherface名字由来.Fisherface所基于的LDA(Linear Discriminant Analysis,线性判别 ...

  9. MFC学习随笔(2)

    在MFC中,有时需要多个类之间传递信息,一个共通的头文件是个不错的选择.如果在头文件中直接声明一个变量的话,势必会报出一个错误: error LNK2005: "struct my_glob ...

  10. caffe在windows 下的配置及matlab接口编译(无GPU)

    本人机子windows 10,matlab2015a,vs2013(官网使用的是vs2013) 1.首先去github上下载caffe的windows包,地址:https://github.com/B ...