开源任务管理平台TaskManager介绍

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

阅读目录

  • Quart.Net介绍
  • Cron表达式
  • 开源TaskManager实现原理
  • 使用介绍
  • 总结

回到顶部

Quartz.NET介绍

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

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

回到顶部

Cron表达式

Cron表达式是用来指定任务执行频率的,前面我已经写了一篇Quartz Cron表达式 在线生成器的文章,大家可以直接拿来使用。

回到顶部

开源TaskManager介绍及实现原理

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

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

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

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

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

   项目结构介绍:项目是基于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,‘[email protected]‘ AS Receiver

其中[email protected]为接收进度信息变更邮箱地址,只要有进度变更,系统会自动发邮件,记得修改成自己的邮箱地址 

ExpressNo:为快递单号

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

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

回到顶部

总结

本篇要介绍的内容到此结束了,下面写点我的期待!希望有喜欢的朋友一起来完善TaskManager(完全开源的),使之成为一款能够提高生活便捷性的工具,添加很多新任务。比如:第二天要下雨或者下雪,发个邮件提醒,带上雨伞...。好了到了放出源代码的时间了。敬请期待下一篇!

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

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

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。
因为,我的写作热情也离不开您的肯定支持。

感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是焰尾迭 。

时间: 2024-10-15 05:34:17

开源任务管理平台TaskManager介绍的相关文章

Quartz.NET总结(五)基于Quartz.net 的开源任务管理平台

前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblogs.com/zhangweizhong/category/771057.html . 最近,又重新整理,开发出了一套基于Quartz.net 的任务管理平台.将Quartz.net 的任务调度,管理等功能统一整合,形成了一套比较完整的任务调度平台.主要是:任务调度服务,后台任务管理 等功能. github地址:https://github.

淘宝实时数据传输平台: TimeTunnel介绍

作者在工作中遇到了类似流式数据实时接入的业务场景,所以对淘宝的实时数据仓库这一块做了一些调研和了解.本文从业务场景和设计上介绍了淘宝的TimeTunnel工具,文中的图片来自淘宝数据仓库团队交流过程中的sildes,也参考了一些相关文档. 业务背景 TimeTunnel(简称TT)是一个基于thrift通讯框架搭建的实时数据传输平台,具有高性能.实时性.顺序性.高可靠性.高可用性.可扩展性等特点(基于Hbase). 目前TimeTunnel在阿里巴巴广泛的应用于日志收集.数据监控.广告反馈.量子

【SPMF开源数据挖掘平台入门】MaxSP算法使用说明

前段时间,由于项目中用到了序列挖掘的算法,师兄推荐我用用SPMF.在此做个记录. 首先简单介绍一下SPMF: SPMF是一个采用Java开发的开源数据挖掘平台. 它提供了51种数据挖掘算法实现,用于: 序列模式挖掘, 关联规则挖掘, frequent itemset 挖掘, 顺序规则挖掘, 聚类 HOME PAGE:http://www.philippe-fournier-viger.com/spmf/ 首先还是学习一下序列挖掘的有关概念: 所谓序列模式,我的定义是:在一组有序的数据列组成的数据

开源视频平台:Kaltura

这里算一个口子,让自己了解,多媒体处理技术领域的发展: Kaltura是一个很优秀的开源视频平台.提供了视频的管理系统,视频的在线编辑系统等等一整套完整的系统,功能甚是强大. Kaltura不同于其他诸如Brightcove,Ooyala这样的网络视频平台,主要区别表现在:一方面,它的代码是开源的,可以免费部 署到企业:另一方面,它拥有一个模块化结构,可以让用户根据自己的需要购买平台的部分服务,而不是像其他公司那样采取一刀切的购买模式:最后它允许客户连 接到Kaltura自己的托管平台,在后台部

Android_进化史和平台架构介绍

一.Android平台发展史  2008年9月,谷歌正式发布了Android 1.0系统,全球第一台Android设备HTC (G1)  2009年4月,谷歌正式推出了Android 1.5        2009年9月,谷歌发布了Android 1.6的正式版        2010年12月,谷歌正式发布了Android 2.3        2011年2月,Android系统设备的用户总数达到了1.35亿,发布Android 3.0        2011年8月,Android手机已占全球智

渗透测试平台Vulnreport介绍与使用

渗透测试平台Vulnreport介绍与使用 在这篇文章中,我们将跟大家讨论一些关于渗透测试方面的内容,并给大家介绍一款名叫Vulnreport的新型开源工具,而这款工具将能够让任何场景下的渗透测试任务变得更加简单. Vulnreport是什么? Vulnreport是一款渗透测试管理与自动化平台,它可以帮助我们完成很多枯燥乏味的安全渗透测试任务.虽然它无法代替渗透测试人员的位置,但是它可以增强测试人员的能力,使他们的工作更有效率.简而言之,它可以帮我们把所有的"脏活累活"全部做完,而研

第3章 Android移植平台工具介绍

第3章 通过本章对开发板移植平台工具介绍,如FS_S5PC100拥有丰富的硬件资源网络接口.音频的输入输出.Video输出.串口.红外接口.温度传感器.HDMI接口.VGA接口等.知道了开发板一些基本硬件组成,同时开发板FS_S5PC100软件资源有Android2.1系统源代码.Linux2.6.29 系统源代码.外设接口测试源代码和U-Boot(支持USB.网络通信).接下来说明FS_S5PC100开发平台的Android摄像头功能展示.VGA 720p高清播放功能和HDMI 720P显示功

12款免费与开源的NoSQL数据库介绍

Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果.近日,Naresh撰文谈到了12款知名的免费.开源NoSQL数据库,并对这些数据库的特点进行了分析. 现在,NoSQL数据库变得越来越流行,我在这里总结出了一些非常棒的.免费且开源的NoSQL数据库.在这些数据库中,MongoDB独占鳌头,拥有相当大的使用量.这些免费且开源的NoSQL数据库具有很好的可伸缩性与灵活性,非常适合于大数据存储与处理.相较于传统的关系型

.Net开源网络爬虫Abot介绍

.Net中也有很多很多开源的爬虫工具,abot就是其中之一.Abot是一个开源的.net爬虫,速度快,易于使用和扩展.项目的地址是https://code.google.com/p/abot/ 对于爬取的Html,使用的分析工具是CsQuery, CsQuery可以算是.net中实现的Jquery, 可以使用类似Jquery中的方法来处理html页面.CsQuery的项目地址是https://github.com/afeiship/CsQuery 一. 对Abot爬虫配置 1. 通过属性设置 先