Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源任务管理平台TaskManager介绍

开源任务管理平台TaskManager介绍

作者头像
用户1168362
修改于 2019-08-07 08:27:10
修改于 2019-08-07 08:27:10
2.6K00
代码可运行
举报
文章被收录于专栏:.net core新时代.net core新时代
运行总次数:0
代码可运行

  很早之前准备写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爬虫,快递进度,消息通知,动态修改Job任务。

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

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

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

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

   动态修改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.插入快递单模拟数据

 目前使用快递任务需要自己手工插入快递单号信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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进行安装。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
开源任务管理平台TaskManagerV2.0介绍及升级说明
本文主要介绍了任务管理框架的设计与实现,包括后台管理程序、Windows服务、控制台程序、数据库设计等方面的内容。作者还提供了程序的下载地址和部署方法。
用户1168362
2018/01/05
2K0
开源任务管理平台TaskManagerV2.0介绍及升级说明
Quartz.NET的使用(附源码)
  虽然Quartz.NET被园子里的大神们写烂了,自己还是整理了一篇,结尾会附上源码地址。
陈珙
2018/09/12
2.5K0
Quartz.NET的使用(附源码)
Quartz.NET的管理工具
很多同学都在用Quartz.NET做任务调度,任务调度情况怎么样啊,需要暂停某个任务,运行下某个任务,需要有管理工具的支持,本篇文章是向你介绍Quartz.NET的管理工具方面的几个开源项目。工具有两类:完整的一个管理站点和嵌入你的项目里头的一个模块。 1、quartznet-admin 是一个完整的asp.net mvc的Quartz.NET 管理应用,地址是 http://code.google.com/p/quartznet-admin/ ,这个项目目前也没有发布出来的版本,自己可以去下载代码下来编译
张善友
2018/01/22
1.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(84)-Quartz 作业调度用法详解一
系列目录 前言 我从Quartz2.0开始使用,并对其进行了封装了界面,可以参考 http://www.cnblogs.com/ymnets/p/5065154.html 最近拿出来进行了优化,并升级到最新版,温故而知新嘛 当初教程较少,并且是英文,现在很多地方都有中文的教程也是学习起来事半功倍 Quartz能实现什么? 他类似于SQL Server的代理与Timer定时器: 1.指定时间执行一条SQL语句或存储过程 2.指定时间发送邮件(执行一个C#方法) 3.有规律的定时执行想要做的事情(通过
用户1149182
2018/01/12
1.8K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(84)-Quartz 作业调度用法详解一
免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)
彭泽0902
2018/01/04
2.6K0
.NET有哪些好用的定时任务调度框架
定时任务调度的相关业务在日常工作开发中是一个十分常见的需求,经常有小伙伴们在技术群提问:有什么好用的定时任务调度框架推荐的?今天大姚给大家分享5个.NET开源、简单、易用、免费的任务调度框架,帮助大家在做定时任务调度框架技术选型的时候有一个参考。
追逐时光者
2024/05/09
3900
.NET有哪些好用的定时任务调度框架
.NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
2.3、如何基于Quartz.NET封装实现优雅的作业调度执行框架(ABenNet.QuartzNet.Practice)
跟着阿笨一起玩NET
2019/03/14
1.3K0
.NET开源作业调度框架(Quartz.NET和FluentScheduler)实战项目演练
C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...
原文由Rector首发于 码友网 之 《C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件有哪些,Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET还是Hangfire》
Rector
2020/06/19
3.6K0
用abp vNext快速开发Quartz.NET定时任务管理界面
今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发。大伙最好跟着一起敲一下代码,当然源码我会上传到github上,有兴趣的小伙伴可以在文章底部查看源码链接。
依乐祝
2019/03/11
2.4K0
用abp vNext快速开发Quartz.NET定时任务管理界面
基于SQL Server 2008 Service Broker构建企业级消息系统
注:这篇文章是为InfoQ 中文站而写 1、引言 Microsoft 在SQL Server 2005引入了服务代理 (Service Broker 简称SSB) 为技术支持代理设计模式和面向消息的中间件 (MOM) 的原则。Service Broker在SQL Server 2008上得到完善, SQL Server Service Broker 为消息和队列应用程序提供 SQL Server 数据库引擎本机支持。这使开发人员可以轻松地创建使用数据库引擎组件在完全不同的数据库之间进行通信的复杂应用程序。开
张善友
2018/01/22
8910
基于SQL Server 2008 Service Broker构建企业级消息系统
精进 Quartz—Quartz大致介绍(一)
分享一位老师的人工智能教程。零基础!通俗易懂!风趣幽默! 大家可以看看是否对自己有帮助,点击这里查看【人工智能教程】。接下来进入正文。
全栈程序员站长
2022/02/27
2.1K0
精进 Quartz—Quartz大致介绍(一)
topshelf和quartz内部分享
阅读目录: 介绍 基础用法 调试及安装 可选配置 多实例支持及相关资料 quartz.net 上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客。 介绍 topshelf是创建windows服务的一种方式,相比原生实现ServiceBase、Install.Installer更为简单方便, 我们只需要几行代码即可实现windows服务的开发。topshelf本身支持windows及linux下mono上部署安装,同样也是开源的。 topshelf相对原生来说,调试起来比较方便,可以在开发时以控制台
蘑菇先生
2018/05/21
1K0
定时从列表中爬今日通知信息,打包成windows服务
每天8点爬取今日发布的新闻和通知公告,将爬取后的信息保存到Excel文件中,将程序发布成windows服务,开机即可自动启动。
happlyfox
2018/10/31
6800
Net作业调度(一) -Quartz.Net入门
背景 很多时候,项目需要在不同时刻,执行一个或很多个不同的作业。 Windows执行计划这时并不能很好的满足需求了,迫切需要一个更为强大,方便管理,集群部署的作业调度框架。 介绍 Quartz一个开源的作业调度框架,OpenSymphony的开源项目。Quartz.Net 是Quartz的C#移植版本。 它一些很好的特性: 1:支持集群,作业分组,作业远程管理。  2:自定义精细的时间触发器,使用简单,作业和触发分离。 3:数据库支持,可以寄宿Windows服务,WebSite,winform等。 实战 Q
蘑菇先生
2018/05/21
1.7K0
【壹起学】1:Uwl.Admin开源框架基于QuartzNet的实现
Quartz.NET官网地址:https://www.quartz-scheduler.net/
老张的哲学
2022/04/11
9160
【壹起学】1:Uwl.Admin开源框架基于QuartzNet的实现
在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度
在这篇文章中,我将介绍如何使用ASP.NET Core托管服务运行Quartz.NET作业。这样的好处是我们可以在应用程序启动和停止时很方便的来控制我们的Job的运行状态。接下来我将演示如何创建一个简单的 IJob,一个自定义的 IJobFactory和一个在应用程序运行时就开始运行的QuartzHostedService。我还将介绍一些需要注意的问题,即在单例类中使用作用域服务。
依乐祝
2020/04/09
3K0
在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度
Quartz.Net使用教程
在项目的开发过程中,难免会遇见后需要后台处理的任务,例如定时发送邮件通知、后台处理耗时的数据处理等,这个时候你就需要Quartz.Net了。
AI.NET 极客圈
2019/09/09
2.6K0
Quartz.Net使用教程
有哪些好的C#开源项目推荐?
链接:https://www.zhihu.com/question/27993498/answer/1014561869
JusterZhu
2022/12/07
2.7K0
有哪些好的C#开源项目推荐?
.net core下定时任务的实现
Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库。在 .net core的环境中,由Core自带的DI管理着生命周期,免去了在NF4.X环境中配置always running的麻烦,真正做到开箱即用。
Bug生活2048
2018/08/31
1.4K0
.net core下定时任务的实现
.NET之Hangfire快速入门和使用
  定时任务调度问题,是一个老生常谈的问题。网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度框架Quartz.Net。但是却一直没有上手过Hangfire这个自带后台任务调度面板,可以在后台手动执行任务的神奇的任务调度框架。前段时间终于开始对他下手了,通过在网上查阅了一些资料和查看了Hangfire在Github中的demo,终于在我自己的项目中用上了Hangfire。在该篇文章中主要简单介绍一下什么是Hangfire,Hangfire的基本特征与优点和分别使用MySQL,MS SQL Server作为存储使用。
追逐时光者
2019/09/30
2K0
.NET之Hangfire快速入门和使用
推荐阅读
相关推荐
开源任务管理平台TaskManagerV2.0介绍及升级说明
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验