您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)如何使用Nancy打造TaskManager2.0管理系統(tǒng),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
有網(wǎng)友聯(lián)系我看看能不能做個(gè)后臺(tái)管理界面,方便管理系統(tǒng)中所有的任務(wù)。由于時(shí)間和技術(shù)問(wèn)題1.0版本的時(shí)候,新增了一個(gè)3分鐘讀取配置文件動(dòng)態(tài)修改任務(wù)的功能,不過(guò)總體來(lái)說(shuō)還是不直觀,操作不便捷。剛好最近接觸到了Owin,可以實(shí)現(xiàn)自己的宿主程序運(yùn)行Web站點(diǎn),無(wú)需IIS中即可運(yùn)行后臺(tái)Web,這里演示的是點(diǎn)擊控制臺(tái)程序運(yùn)行的結(jié)果。最近利用閑暇時(shí)間使用該技術(shù)實(shí)現(xiàn)了后臺(tái)管理程序,也就是小編要說(shuō)的TaskManagerV2.0版本。
2.0相對(duì)于之前的版本最大變化有四點(diǎn)
1.后臺(tái)管理程序
最明顯的區(qū)別提供了后臺(tái)管理程序,用戶啟動(dòng)TaskManager時(shí),即可通過(guò)瀏覽器進(jìn)入后臺(tái)管理系統(tǒng)輕松的配置管理所有任務(wù),方便的查看任務(wù)最近運(yùn)行時(shí)間和下一次運(yùn)行時(shí)間。當(dāng)然后臺(tái)管理程序站點(diǎn)地址也是可以由用戶進(jìn)行配置的,后面會(huì)進(jìn)行講解。
2.多樣化宿主程序
V1.0基于Window服務(wù)實(shí)現(xiàn),V2.0可以使用控制臺(tái)程序,Windows服務(wù) 或者傳統(tǒng)Web程序來(lái)重載。
3.任務(wù)存儲(chǔ)方式
系統(tǒng)所有任務(wù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,不再采用1.0版本存儲(chǔ)在xml配置文件中。
4.自動(dòng)以系統(tǒng)管理員方式啟動(dòng)
在程序啟動(dòng)前會(huì)先判斷當(dāng)前是否以管理員方式運(yùn)行,如果不是則會(huì)重啟以管理員方式運(yùn)行
最重要的變化,Web管理站點(diǎn)無(wú)需用戶部署在iis中,啟動(dòng)控制臺(tái)程序或者服務(wù)時(shí)會(huì)自動(dòng)啟動(dòng)
回到頂部
Cron表達(dá)式是用來(lái)指定任務(wù)執(zhí)行頻率的,前面我已經(jīng)寫(xiě)了一篇Quartz Cron表達(dá)式 在線生成器的文章,大家可以直接拿來(lái)使用。
回到頂部
TaskManager是基于Quartz.NET和Nancy的一款開(kāi)源任務(wù)管理系統(tǒng),可以使用Window服務(wù)或者控制臺(tái)程序來(lái)承載,Web后臺(tái)實(shí)現(xiàn)采用Nancy Host實(shí)現(xiàn),下一篇將介紹一下這個(gè)技術(shù)。
項(xiàng)目結(jié)構(gòu)介紹:
后臺(tái)管理站點(diǎn)完全獨(dú)立于window服務(wù)和控制臺(tái)程序,松耦合。下面看下這兩個(gè)承載服務(wù)是怎么啟動(dòng)后臺(tái)站點(diǎn)的。
window服務(wù)
protected override void OnStart(string[] args) { DebuggableAttribute att = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttribute<DebuggableAttribute>(); if (att.IsJITTrackingEnabled) { //Debug模式才讓線程停止10s,方便附加到進(jìn)程調(diào)試Thread.Sleep(10000); } //配置信息讀取 ConfigInit.InitConfig(); QuartzHelper.InitScheduler(); QuartzHelper.StartScheduler(); // 保持web服務(wù)運(yùn)行 ThreadPool.QueueUserWorkItem((o) => { //啟動(dòng)站點(diǎn) Startup.Start(SysConfig.WebPort); }); }
在window服務(wù)啟動(dòng)時(shí),調(diào)用了Web程序提供的啟動(dòng)接口。
控制臺(tái)程序
static void Main(string[] args) { AdminRun.Run(); ConfigInit.InitConfig(); QuartzHelper.InitScheduler(); QuartzHelper.StartScheduler(); try { //啟動(dòng)站點(diǎn)using (NancyHost host = Startup.Start(SysConfig.WebPort)) { //調(diào)用系統(tǒng)默認(rèn)的瀏覽器 Process.Start("http://127.0.0.1:9000"); Console.WriteLine("系統(tǒng)監(jiān)聽(tīng)站點(diǎn)地址:{0}", "http://127.0.0.1:9000"); Console.WriteLine("程序已啟動(dòng),按任意鍵退出"); Console.ReadLine(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); }
初次使用需要新建數(shù)據(jù)庫(kù),執(zhí)行發(fā)布程序下的SQL合并腳本,修改config配置文件中的數(shù)據(jù)庫(kù)連接。
使用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文件夾,目前系統(tǒng)會(huì)分任務(wù)記錄執(zhí)行日志,方便使用者查看各個(gè)任務(wù)的執(zhí)行情況
3.瀏覽器打開(kāi)http://本機(jī)IP:9000 進(jìn)入后臺(tái)
使用控制臺(tái)程序做為承載器
點(diǎn)擊運(yùn)行Ywdsoft.Test.exe
后臺(tái)管理程序使用介紹
1.自定義站點(diǎn)端口
修改Config.config文件,默認(rèn)端口為9000
2.編輯界面Cron表達(dá)式如何填寫(xiě)
這里也替大家考慮到了,可以使用在線Cron生成器來(lái)生成,地址http://tool.myscloud.cn,也可以使用源代碼里面提供的Cron自己部署站點(diǎn)使用。
3.其它可自行摸索
以上就是如何使用Nancy打造TaskManager2.0管理系統(tǒng),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。