項(xiàng)目總是很忙,忙里偷閑還是要總結(jié)一下,前一段時(shí)間,由于項(xiàng)目中需要,我們需要很多定時(shí)匯總數(shù)據(jù)的情況,項(xiàng)目初期主要使用sql server 計(jì)劃任務(wù)實(shí)現(xiàn)對數(shù)據(jù)的匯總與統(tǒng)計(jì),但是開發(fā)到一定時(shí)間內(nèi),需求提出了很多自動任務(wù)的功能,很多不是能夠在SQL Server中進(jìn)行解決的,例如訂單關(guān)閉前多少分鐘內(nèi)發(fā)短信與郵箱告訴用戶,程序?qū)用婷刻靺R總錯(cuò)誤日志發(fā)送至運(yùn)維郵箱等,針對目前情況,簡單上網(wǎng)查了一下,決定使用TopShelf + Quartz 進(jìn)行自動服務(wù)與任務(wù)調(diào)度,關(guān)于這兩項(xiàng)的介紹也很多了,廢話不多說,直接上代碼:
項(xiàng)目結(jié)構(gòu)圖如下:
任務(wù)調(diào)度與任務(wù)實(shí)現(xiàn)實(shí)質(zhì)是兩個(gè)完全不同的東西,所以自動服務(wù)于Job執(zhí)行是應(yīng)該分開的,所以任務(wù)創(chuàng)建時(shí)應(yīng)該吧Job加載到任務(wù)調(diào)度工程,最后告訴調(diào)度工廠,可以開始執(zhí)行任務(wù)之后,調(diào)度工廠會進(jìn)行掃描Job,加載到內(nèi)存中挨個(gè)執(zhí)行。