跳到主要內容

Quartz.net 升級測試

因為工作的關係,有個程式功能需要透過一個穩定排程工具進行處理,評估之後選擇了Quartz.Net

我是透過.net 的NuGet套件進行下載安裝,這個版本(V3.0.6)必須使用.net 4.5.2之後的版本



進到程式裡面,開發環境的設定初始化,建立ScheduleFactory、Scheduler

這部份需建立兩個全域的物件,StdSchedulerFactory與Scheduler



建立工作及觸發器


由於筆者是在windows form專案,因此在Form_Load階段必須建立工作流程

在TestAsyncJob裡面

建立了 IJobDetail類別job,並註冊CsCountJob(自定的工作執行器)
建立ITrigger  trigger工作觸發器

Trigger的觸發方式有蠻多的,例如
WithSimpleSchedule、WithDailyTimeIntervalSchedule、WithCronSchedule及WithCalendarIntervalSchedule

這次專案是使用WithDailyTimeIntervalSchedule,並設定每5秒進行一次trigger

完成Job與Trigger 的宣告後,再加入到Scheduler的工作排程


創建工作實體物件
CsCountJob是由IJobDetail所註冊的工作實體, 用來執行所排定的工作內容,實作IJob介面

Execute method,是實作IJob的工作執行方法,可以放置要進行執行的工作區段

目前Execute內部是用來處理Udp通訊封包的資料接收,並即時回饋至UI。

JobDataMap物件是由IJobDetail所定義的參數容器,主要是用來傳遞工作執行所需要的參數資訊。

另外在工作實體的宣告,在工作類別會使用DisallowConcurrentExecution進行過濾,主因是工作排程是每5秒一次,但若單次的工作執行階段會超過Trigger的秒數時間,為避免排程出現干擾的狀況,必須在類別宣告[DisallowConcurrentExecution],若當次排程尚未完成,則在trigger後的工作執行緒,將不允許執行。


Quartz.net在V3.0以後,會整合很多非同步執行的操作,因此像在TestAsyncJob Method的部份會使用async Task進行宣告



留言

這個網誌中的熱門文章

右昌的古厝、老街坊

大社老街屋巡禮

  這座三合院的馬背雕飾蠻細工的 上面兩幢的側牆馬背,都有特別的雕飾,這是常見的三合院風格 在我走回程往我家的方向,又看到幾座大院,後頭都是現代化的樓房 這座三合院蠻有規模的,院子邊還有一座古井,也很有歷史了 這是舊三合院的側屋殘壁,屋頂損壞後就沒再修護了 三合院的側牆 走到了三奶里,這邊就有三座古厝 大社最有名的巫家老厝,老厝是在大社的市中心,黃昏市場外面 老厝的院子保存的很完整 大院的右側一角 老厝的左側小旁門 巫家老厝外院 這座古厝在大社三奶里也蠻有名的 大瓦厝的側邊外牆 房子外牆很典雅,搭配裡面有層次的老建物 房子後頭的一塊小田地,有點像我以前屏東阿嬤家的古厝風格 這個景色很像油畫上面看到的,這區塊的古厝週邊都蓋滿了樓房 走到了大社觀音里後可以看到密集的巷弄老房 巷底的老房子,窗戶上緣有雕花裝飾 老三合院的正廳 巷弄邊老房子一角 在街上看到老房子常常有這個廣告 老巷弄與老房,搭配著新跑車 觀音里的老巷弄三合院

好久沒在家附近散步,順便拍些附近的街景

位在大社中華路的黃家古厝,這是大社的古蹟之一 這是觀音里的設區協會 有彩繪的外牆 老街巷弄的老屋 在大社的舊巷弄還是可以看到這些老屋 巷弄裡的三合院建築群 這座三合院主體保留的很完整 在院子一角,發現這座古董,這個是石磨,以前農村裡面常常可以看到 中華路旁邊有一處小公園 這是在中華路上一處蠻顯眼的三合大院 除了三合院,也有許多傳統的二層樓房 這座三合院外牆還有一面屏風