[DotnetCore]排程神器-Hangfire:入門篇
前情提要
筆者在上篇已介紹Coravel
短小精幹的排程利器,固定週期排程部份皆使用Coravel
套件完成,然而使用者需求越來越清楚的狀況下,意識到無法滿足所以使用者需求,事情是這樣的,使用者的某些作業需要從畫面操作,並將該項作業排進排程中,且是一次性作業,例如:使用者透過介面去設定日結作業的需求,我們會由介面呼叫API,於API中設定好某個時間點去執行該「日結作業」服務。
以上述的需求,在Coravel套件是無法做到的,Coravel是有Queue的機制,不過無法設定特定時間,筆者最近是時不時看Asp.Net Core RoadMap上所列之相關技術及推薦套件,對於上面推薦的套件,都會想要來試看看,畢竟大神們整理過的,肯定有其厲害之處,剛好於Task Scheduling作業中有推薦三套相關套件,筆者已經使用過Coravel,試試看其他,廢話不多說,趕緊來介紹今天的主角HangFire
吧。
[IIS]排程及背景服務站台-保持啟動設定
[DotnetCore]排程利器-Coravel:Queue篇
前情提要
筆者上篇介紹完Coravel的Scheduler
功能後,這篇要來實作Queue
的功能了,筆者敘述一下工作上用到的情境,最近因大系統要上線,必須實作Data Migration
,為方便,不防做一個前端頁面,才可以有介面去點擊執行Data Migration
作業,想當然爾,作業時間一定無法在一個Request
時間內完成,一定會噴Timeout Error
。
再則為這點小功能,不想透過Hangfire的BackgroundJob.Enqueue
來實作,這時想到Coravel
也有提供Queue
功能,API站台的action收到Data Migration的request後,塞入一則Coravel
的Queue
,由Queue
對應的Service去往下執行對應的作業,是個完美的方案吧。
[DotnetCore]排程利器-Coravel:Scheduler篇
前情提要
筆者因工作有需求要實作排程,以傳統做法來說,最簡單的方式是撰寫一支獨立的console或其他可以產生執行檔的專案,由Windows排程
去設定,於某一個特定時間執行某一個自己撰寫的程式執行檔案,但是壞處是我得獨立一個專案,如果以簡易的排程來說太麻煩,本身有API站台要發佈,排程若有更新則需要再發佈一個排程的執行擋。
筆者期初的想法是能找到一個套件依附於API站台專案中,因筆者針對測試環境,有設定WebDeploy的功能,因此很容易發佈更新版本,不需要手動發佈執行檔檔案並調整Windows排程。筆者有在關注ASP.NET CORE Developer Roadmap,不時會在上面找好料,Coravel本身也是從其中的TaskScheduling區塊中找到,就試著用用看吧
[DotnetCore]後端驗證神器:Fluent Validation
前情提要
現在開發網頁幾乎都切換成前後端分離的開發方式,前端採用 Angular
, Vue
, React
三大框架之一,後端則只要撰寫API服務即可,一來職責分離,前端適合處理畫面的互動效果,後端搭配資料庫處理商業邏輯的運算,使用json
格式傳送結果至前端,多完美的協作阿。
通常簡單驗證邏輯會放在前端做處理,畢竟不用花費傳送成本,例如必填、長度等簡單邏輯驗證,直接在前端實作即可,但畢竟後端需要將資料儲存至資料庫,若沒有再做進一步驗證則資料儲存失敗的風險,以及日後資料運算使用時的困難。又或者系統本身需要透過http
與其他系統介接,其他系統直接打我方API,這種情境就不需多說,需要在後端做驗證,連必填、長度等簡單邏輯驗證也必須做在後端。
[DotnetCore]NLog-ILoggerManager設計
[DotnetCore]NLog使用
[MySQL]範例資料庫設定
前情提要
筆者上篇介紹完MySQL安裝與設定後,這篇則是紀錄安裝範例資料,筆者使用MySQL Tutorial所使用的範例資料,安裝範例資料庫也是參考該網站上面的兩篇文章,詳細資料庫中的相關資料表內容,可以觀看參考中兩篇文章的詳細內容。