這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)開(kāi)源任務(wù)管理平臺(tái)TaskManager如何分析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
普陀網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,普陀網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為普陀成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的普陀做網(wǎng)站的公司定做!
Quartz.NET是一個(gè)開(kāi)源的作業(yè)調(diào)度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#寫(xiě)成,可用于winform和asp.net應(yīng)用中。它提供了巨大的靈活性而不犧牲簡(jiǎn)單性。你能夠用它來(lái)為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡(jiǎn)單的或復(fù)雜的調(diào)度。它有很多特征,如:數(shù)據(jù)庫(kù)支持,集群,插件,支持cron-like表達(dá)式等等。下載地址:Quart.Net
舉個(gè)實(shí)際例子:現(xiàn)在需要實(shí)現(xiàn)一款快遞進(jìn)度查詢的應(yīng)用,我們肯定是沒(méi)有各個(gè)快遞廠商的數(shù)據(jù)庫(kù)的,只能利用廠商提供的API接口來(lái)獲取數(shù)據(jù)。好在現(xiàn)在有很多現(xiàn)成的接口集成了各廠商,基于這些基礎(chǔ)?,F(xiàn)在客戶提了一個(gè)需求,在快遞單進(jìn)度發(fā)生改變時(shí),給我發(fā)郵件或者短信提醒。我想很多網(wǎng)上購(gòu)物的朋友都有這種需求吧,買(mǎi)了一款東西,時(shí)不時(shí)的查一下進(jìn)度,期待早點(diǎn)到。那么這個(gè)提醒功能就很迫切了,我也是基于自己的這個(gè)需求來(lái)做的TaskManager開(kāi)源項(xiàng)目。
Cron表達(dá)式是用來(lái)指定任務(wù)執(zhí)行頻率的,前面我已經(jīng)寫(xiě)了一篇Quartz Cron表達(dá)式 在線生成器的文章,大家可以直接拿來(lái)使用。
TaskManager是基于Quartz.NET的一款開(kāi)源任務(wù)管理系統(tǒng),使用Window服務(wù)來(lái)承載。目前系統(tǒng)集成了四個(gè)常用任務(wù),代理IP爬蟲(chóng),快遞進(jìn)度,消息通知,動(dòng)態(tài)修改Job任務(wù)。
代理IP爬蟲(chóng):每隔一小時(shí)從網(wǎng)站上爬取最新的代理IP信息,爬下來(lái)的數(shù)據(jù)存在p_IPProxy表,有了這些代理IP以后,可以用來(lái)做投票機(jī),刷接口之類(lèi)的應(yīng)用了。相信你肯定遇到過(guò)同學(xué)或同事發(fā)給你一個(gè)鏈接讓你幫忙給XX投個(gè)票之類(lèi)的問(wèn)題,但是呢很多投票都限制了一個(gè)IP只能投一票,那么有了許多代理IP你就可以實(shí)現(xiàn)一個(gè)人投N票了。
快遞進(jìn)度:這對(duì)熱衷于網(wǎng)購(gòu)的朋友來(lái)說(shuō)是一大福音,當(dāng)然對(duì)我來(lái)說(shuō)也是如此。經(jīng)常網(wǎng)購(gòu)的朋友最大的困擾可能就是我的快遞到哪兒啦,時(shí)不時(shí)打開(kāi)客戶端查一下快遞進(jìn)度,要是有快遞進(jìn)度改變能夠發(fā)短信或者郵件提醒的功能就好了,我就再也不用著急查快遞到哪兒了。來(lái)看一下郵件提醒效果,有沒(méi)有很激動(dòng),很想使用這個(gè)開(kāi)源TaskManager平臺(tái)啦!
消息通知:消息通知相關(guān)表p_Message(待發(fā)送消息表),p_MessageHistory(已發(fā)送或者發(fā)送失敗消息表)
目前快遞任務(wù)有信息變更會(huì)插入一條消息,消息通知任務(wù)3分鐘輪詢一次p_Message表,對(duì)于每個(gè)消息最多會(huì)進(jìn)行三次發(fā)送(前兩次都失敗),發(fā)送完成將p_Message數(shù)據(jù)插入到p_MessageHistory
動(dòng)態(tài)修改Job:每個(gè)5分鐘會(huì)讀取配置文件TaskConfig.xml看是否有新增,修改,刪除的任務(wù),然后動(dòng)態(tài)調(diào)整當(dāng)前運(yùn)行的任務(wù)。無(wú)需重啟Windows就可以實(shí)現(xiàn)任務(wù)的添加。
開(kāi)發(fā)模式:
添加一個(gè)新任務(wù)步驟如下
1.在Mysoft.Task項(xiàng)目TaskSet文件夾下添加繼承IJob接口的任務(wù)類(lèi),可以參照現(xiàn)有的IpProxyJob
2.修改TaskConfig.xml配置文件
最重要的部分運(yùn)行頻率CronExpressionString需要怎么寫(xiě)?這里也替大家考慮到了,可以使用在線Cron生成器來(lái)生成,地址http://jason.hahuachou.com/cron/index.htm,也可以使用源代碼里面提供的Cron自己部署站點(diǎn)使用。
介紹完了功能和實(shí)現(xiàn)原理,現(xiàn)在介紹怎么使用TaskManager。由于是使用Windows服務(wù)做為承載器,那么我們只需要知道怎么安裝Windows服務(wù),也就能使用該平臺(tái)了。這里考慮到很多人不知道怎么安裝卸載Windows服務(wù),所以提供了我之前寫(xiě)的一個(gè)小工具Windows服務(wù)安裝卸載。源代碼也一起放在了TaskManager里面。
1.右鍵以管理員方式運(yùn)行Windows安裝卸載工具
2.選擇TaskManger.exe-》安裝-》運(yùn)行
運(yùn)行成功以后可以在系統(tǒng)管理-》服務(wù) 里面找到“定時(shí)任務(wù)管服務(wù)”
運(yùn)行成功后會(huì)生成Logs文件夾,記錄執(zhí)行日志的
當(dāng)然在使用系統(tǒng)時(shí)你需要進(jìn)行相關(guān)配置,下面講一下配置過(guò)程。系統(tǒng)的配置文件路徑Config\Config.xml
1.數(shù)據(jù)庫(kù)連接信息
使用者可以拿從SVN下載代碼MyDocument項(xiàng)目下的任務(wù)系統(tǒng)”SQL合并腳本_20150911.sql”執(zhí)行創(chuàng)建相關(guān)表和初始數(shù)據(jù)
修改節(jié)點(diǎn)SqlConnect節(jié)點(diǎn)的值為你自己的數(shù)據(jù)庫(kù)連接
2.插入快遞單模擬數(shù)據(jù)
目前使用快遞任務(wù)需要自己手工插入快遞單號(hào)信息
INSERT INTO dbo.p_ExpressInfo(ExpressNo,ExpressCompanyCode,Receiver)SELECT '880350384879600241' AS ExpressNo,'yuantong' AS ExpressCompanyCode,'youemial@xx.com' AS Receiver
其中youemail@xx.com為接收進(jìn)度信息變更郵箱地址,只要有進(jìn)度變更,系統(tǒng)會(huì)自動(dòng)發(fā)郵件,記得修改成自己的郵箱地址
ExpressNo:為快遞單號(hào)
ExpressCompanyCode:快遞公司Code 該值可從p_ExpressCompany表里面進(jìn)行查詢。
上述就是小編為大家分享的開(kāi)源任務(wù)管理平臺(tái)TaskManager如何分析了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。