上一篇開源任務管理平臺TaskManager介紹發佈後,有網友聯繫我看看能不能做個後臺管理界面,方便管理系統中所有的任務。由於時間和技術問題1.0版本的時候,新增了一個3分鐘讀取配置文件動態修改任務的功能,不過總體來說還是不直觀,操作不便捷。剛好最近接觸到了Owin,可以實現自己的宿主程式運行Web
上一篇開源任務管理平臺TaskManager介紹發佈後,有網友聯繫我看看能不能做個後臺管理界面,方便管理系統中所有的任務。由於時間和技術問題1.0版本的時候,新增了一個3分鐘讀取配置文件動態修改任務的功能,不過總體來說還是不直觀,操作不便捷。剛好最近接觸到了Owin,可以實現自己的宿主程式運行Web站點,無需IIS中即可運行後臺Web,這裡演示的是點擊控制台程式運行的結果。最近利用閑暇時間使用該技術實現了後臺管理程式,也就是本文要說的TaskManagerV2.0版本。對TaskManagerV1.0版本不瞭解的可以先看下。最終實現的界面如下,也可以打開這個地址http://tm.myscloud.cn線上瀏覽。還是之前的老規矩文章末尾會提供程式和源代碼下載地址。
閱讀目錄
回到頂部V2.0升級說明
2.0相對於之前的版本最大變化有四點
1.後臺管理程式
最明顯的區別提供了後臺管理程式,用戶啟動TaskManager時,即可通過瀏覽器進入後臺管理系統輕鬆的配置管理所有任務,方便的查看任務最近運行時間和下一次運行時間。當然後臺管理程式站點地址也是可以由用戶進行配置的,後面會進行講解。
2.多樣化宿主程式
V1.0基於Window服務實現,V2.0可以使用控制台程式,Windows服務 或者傳統Web程式來重載。
3.任務存儲方式
系統所有任務存儲在資料庫中,不再採用1.0版本存儲在xml配置文件中。
4.自動以系統管理員方式啟動
在程式啟動前會先判斷當前是否以管理員方式運行,如果不是則會重啟以管理員方式運行
最重要的變化,Web管理站點無需用戶部署在iis中,啟動控制台程式或者服務時會自動啟動
回到頂部Cron表達式
Cron表達式是用來指定任務執行頻率的,前面我已經寫了一篇Quartz Cron表達式 線上生成器的文章,大家可以直接拿來使用。
回到頂部開源TaskManagerV2.0實現原理
TaskManager是基於Quartz.NET和Nancy的一款開源任務管理系統,可以使用Window服務或者控制台程式來承載,Web後臺實現採用Nancy Host實現,下一篇將介紹一下這個技術。
項目結構介紹:
後臺管理站點完全獨立於window服務和控制台程式,松耦合。下麵看下這兩個承載服務是怎麼啟動後臺站點的。
window服務
protected override void OnStart(string[] args) { DebuggableAttribute att = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttribute<DebuggableAttribute>(); if (att.IsJITTrackingEnabled) { //Debug模式才讓線程停止10s,方便附加到進程調試 Thread.Sleep(10000); } //配置信息讀取 ConfigInit.InitConfig(); QuartzHelper.InitScheduler(); QuartzHelper.StartScheduler(); // 保持web服務運行 ThreadPool.QueueUserWorkItem((o) => { //啟動站點 Startup.Start(SysConfig.WebPort); }); }
在window服務啟動時,調用了Web程式提供的啟動介面。
控制台程式
static void Main(string[] args) { AdminRun.Run(); ConfigInit.InitConfig(); QuartzHelper.InitScheduler(); QuartzHelper.StartScheduler(); try { //啟動站點 using (NancyHost host = Startup.Start(SysConfig.WebPort)) { //調用系統預設的瀏覽器 Process.Start("http://127.0.0.1:9000"); Console.WriteLine("系統監聽站點地址:{0}", "http://127.0.0.1:9000"); Console.WriteLine("程式已啟動,按任意鍵退出"); Console.ReadLine(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); }回到頂部
使用介紹
初次使用需要新建資料庫,執行發佈程式下的SQL合併腳本,修改config配置文件中的資料庫連接。
使用Windows服務做為承載器
那麼我們只需要知道怎麼安裝Windows服務,也就能使用該平臺了。這裡考慮到很多人不知道怎麼安裝卸載Windows服務,所以提供了我之前寫的一個小工具Windows服務安裝卸載。源代碼也一起放在了TaskManager裡面。
1.運行Windows安裝卸載工具
2.選擇TaskManger.exe-》安裝-》運行
運行成功以後可以在系統管理-》服務 裡面找到“定時任務管服務”
運行成功後會生成Logs文件夾,目前系統會分任務記錄執行日誌,方便使用者查看各個任務的執行情況
3.瀏覽器打開http://本機IP:9000 進入後臺
使用控制台程式做為承載器
點擊運行Ywdsoft.Test.exe
後臺管理程式使用介紹
1.自定義站點埠
修改Config.config文件,預設埠為9000
2.編輯界面Cron表達式如何填寫
這裡也替大家考慮到了,可以使用線上Cron生成器來生成,地址http://tool.myscloud.cn,也可以使用源代碼裡面提供的Cron自己部署站點使用。
3.其它可自行摸索
回到頂部總結
本篇要介紹的內容到此結束了,下麵到了放出源代碼的時間了。敬請期待下一篇!
關於如何下載下麵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
體驗工具下載地址:任務管理框架 V2.0
如果,您認為閱讀這篇博客讓您有些收穫,不妨點擊一下右下角的【推薦】按鈕。
如果,您希望更容易地發現我的新博客,不妨點擊一下綠色通道的【關註我】。
因為,我的寫作熱情也離不開您的肯定支持。
感謝您的閱讀,如果您對我的博客所講述的內容有興趣,請繼續關註我的後續博客,我是焰尾迭 。