开源任务管理平台TaskManager介绍

2021年11月21日 阅读数:11
这篇文章主要向大家介绍开源任务管理平台TaskManager介绍,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

  很早以前准备写Quartz系列文章,如今终于可以实现了。从本篇开始将带你实现一款本身的任务管理平台。在工做中你曾经须要应用执行一个任务吗?这个任务天天或每周星期二晚上11:30,或许仅仅每月的最后一天执行。一个自动执行而无须干预的任务在执行过程当中若是发生一个严重错误,应用可以知到其执行失败并尝试从新执行吗?你和你的团队是用.NET编程吗?若是这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。html

阅读目录git

Quartz.NET介绍

  Quartz.NET是一个开源的做业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你可以用它来为执行一个做业而建立简单的或复杂的调度。它有不少特征,如:数据库支持,集群,插件,支持cron-like表达式等等。下载地址:Quart.Netgithub

    举个实际例子:如今须要实现一款快递进度查询的应用,咱们确定是没有各个快递厂商的数据库的,只能利用厂商提供的API接口来获取数据。好在如今有不少现成的接口集成了各厂商,基于这些基础。如今客户提了一个需求,在快递单进度发生改变时,给我发邮件或者短信提醒。我想不少网上购物的朋友都有这种需求吧,买了一款东西,时不时的查一下进度,期待早点到。那么这个提醒功能就很迫切了,我也是基于本身的这个需求来作的TaskManager开源项目。sql

Cron表达式

    Cron表达式是用来指定任务执行频率的,前面我已经写了一篇Quartz Cron表达式 在线生成器的文章,你们能够直接拿来使用。数据库

开源TaskManager介绍及实现原理

   TaskManager是基于Quartz.NET的一款开源任务管理系统,使用Window服务来承载。目前系统集成了四个经常使用任务,代理IP爬虫,快递进度,消息通知,动态修改Job任务。编程

   代理IP爬虫:每隔一小时从网站上爬取最新的代理IP信息,爬下来的数据存在p_IPProxy表,有了这些代理IP之后,能够用来作投票机,刷接口之类的应用了。相信你确定遇到过同窗或同事发给你一个连接让你帮忙给XX投个票之类的问题,可是呢不少投票都限制了一个IP只能投一票,那么有了许多代理IP你就能够实现一我的投N票了。关于使用代理IP请求接口获取数据的实例,将在下一篇文章为你们介绍。windows

 

   快递进度:这对热衷于网购的朋友来讲是一大福音,固然对我来讲也是如此。常常网购的朋友最大的困扰可能就是个人快递到哪儿啦,时不时打开客户端查一下快递进度,要是有快递进度改变可以发短信或者邮件提醒的功能就行了,我就不再用着急查快递到哪儿了。来看一下邮件提醒效果,有没有很激动,很想使用这个开源TaskManager平台啦!浏览器

   消息通知:消息通知相关表p_Message(待发送消息表),p_MessageHistory(已发送或者发送失败消息表)框架

   目前快递任务有信息变动会插入一条消息,消息通知任务3分钟轮询一次p_Message表,对于每一个消息最多会进行三次发送(前两次都失败),发送完成将p_Message数据插入到p_MessageHistoryasp.net

   动态修改Job:每一个5分钟会读取配置文件TaskConfig.xml看是否有新增,修改,删除的任务,而后动态调整当前运行的任务。无需重启Windows就能够实现任务的添加。

 

   项目结构介绍:项目是基于Quartz.NET的windows服务,目前包含六个项目

  

   系统原理解析:

   

   开发模式:

    添加一个新任务步骤以下

    1.在Mysoft.Task项目TaskSet文件夹下添加继承IJob接口的任务类,能够参照现有的IpProxyJob  

    

    2.修改TaskConfig.xml配置文件

     

     最重要的部分运行频率CronExpressionString须要怎么写?这里也替你们考虑到了,可使用在线Cron生成器来生成,地址http://jason.hahuachou.com/cron/index.htm,也可使用源代码里面提供的Cron本身部署站点使用。

 

使用介绍

   介绍完了功能和实现原理,如今介绍怎么使用TaskManager。因为是使用Windows服务作为承载器,那么咱们只须要知道怎么安装Windows服务,也就能使用该平台了。这里考虑到不少人不知道怎么安装卸载Windows服务,因此提供了我以前写的一个小工具Windows服务安装卸载。源代码也一块儿放在了TaskManager里面。

  1.右键以管理员方式运行Windows安装卸载工具

  2.选择TaskManger.exe-》安装-》运行

 

 运行成功之后能够在系统管理-》服务 里面找到“定时任务管服务”

运行成功后会生成Logs文件夹,目前系统会分任务记录执行日志,方便使用者查看各个任务的执行状况

 

固然在使用系统时你须要进行相关配置,下面讲一下配置过程。系统的配置文件路径Config\Config.xml

 

1.数据库链接信息

  使用者能够拿从SVN下载代码MyDocument项目下的任务系统”SQL合并脚本_20150911.sql”执行建立相关表和初始数据

  修改节点SqlConnect节点的值为你本身的数据库链接

2.插入快递单模拟数据

 目前使用快递任务须要本身手工插入快递单号信息

INSERT INTO dbo.p_ExpressInfo(ExpressNo,ExpressCompanyCode,Receiver)
SELECT '880350384879600241' AS ExpressNo,'yuantong' AS ExpressCompanyCode,'youemial@xx.com' AS Receiver

 

 其中youemail@xx.com为接收进度信息变动邮箱地址,只要有进度变动,系统会自动发邮件,记得修改为本身的邮箱地址 

 ExpressNo:为快递单号 

 ExpressCompanyCode:快递公司Code  该值可从p_ExpressCompany表里面进行查询

 

更多使用说明能够参考MyDocument项目下的 使用说明.docx 文档

总结

      本篇要介绍的内容到此结束了,下面写点个人期待!但愿有喜欢的朋友一块儿来完善TaskManager(彻底开源的),使之成为一款可以提升生活便捷性的工具,添加不少新任务。好比:次日要下雨或者下雪,发个邮件提醒,带上雨伞...。好了到了放出源代码的时间了。敬请期待下一篇!

   关于如何下载下面SVN代码,我这里稍微介绍一下。这个地址不是在浏览器里面打开的(若是想在浏览器里面预览能够访问:http://code.taobao.org/p/TaskManagerPub/src/Branch/),请使用SVN客户端工具TortoiseSVN->SVN Checkout->输入下面的地址进行下载。

  

      TaskManagerSVN地址:http://code.taobao.org/svn/TaskManagerPub/Branch   使用svn checkout指令进行下载。

  GitHub地址:因为SVN地址不稳定,不少网友下载不下来,因此决定将代码托管到GitHub   https://github.com/CrazyJson/TaskManager

      体验工具下载地址:TaskManager  解压后文件以下,修改Config.xml数据库链接,使用WSWinForm进行安装。