程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 開源任務管理平台TaskManager介紹,管理平台taskmanager

開源任務管理平台TaskManager介紹,管理平台taskmanager

編輯:C#入門知識

開源任務管理平台TaskManager介紹,管理平台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自己部署站點使用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved