使用Nancy打造TaskManager2.0管理系统
上一篇開源任務管理平臺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程序提供的啟動接口。
? ?控制臺程序 ?
使用介紹
初次使用需要新建數據庫,執行發布程序下的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
相關文章
開源任務管理平臺TaskManager介紹
Nancy Web框架
NancyFx系列之 Hello World
Nancy之基于Nancy.Hosting.Aspnet 的小Demo
NancyFx系列之 Hello World
原文地址:http://www.cnblogs.com/yanweidie/p/5297593.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
贊賞
人贊賞
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用Nancy打造TaskManager2.0管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何迁移#SNMP到.NET Core平
- 下一篇: 送给微软中文.NET社区的一份礼物,.N