0%

前情提要

筆者在上篇已介紹Coravel短小精幹的排程利器,固定週期排程部份皆使用Coravel套件完成,然而使用者需求越來越清楚的狀況下,意識到無法滿足所以使用者需求,事情是這樣的,使用者的某些作業需要從畫面操作,並將該項作業排進排程中,且是一次性作業,例如:使用者透過介面去設定日結作業的需求,我們會由介面呼叫API,於API中設定好某個時間點去執行該「日結作業」服務。

以上述的需求,在Coravel套件是無法做到的,Coravel是有Queue的機制,不過無法設定特定時間,筆者最近是時不時看Asp.Net Core RoadMap上所列之相關技術及推薦套件,對於上面推薦的套件,都會想要來試看看,畢竟大神們整理過的,肯定有其厲害之處,剛好於Task Scheduling作業中有推薦三套相關套件,筆者已經使用過Coravel,試試看其他,廢話不多說,趕緊來介紹今天的主角HangFire吧。

閱讀全文 »

前情提要

筆者上篇介紹完CoravelScheduler功能後,這篇要來實作Queue的功能了,筆者敘述一下工作上用到的情境,最近因大系統要上線,必須實作Data Migration,為方便,不防做一個前端頁面,才可以有介面去點擊執行Data Migration作業,想當然爾,作業時間一定無法在一個Request時間內完成,一定會噴Timeout Error

再則為這點小功能,不想透過HangfireBackgroundJob.Enqueue來實作,這時想到Coravel也有提供Queue功能,API站台的action收到Data Migration的request後,塞入一則CoravelQueue,由Queue對應的Service去往下執行對應的作業,是個完美的方案吧。

閱讀全文 »

前情提要

筆者因工作有需求要實作排程,以傳統做法來說,最簡單的方式是撰寫一支獨立的console或其他可以產生執行檔的專案,由Windows排程去設定,於某一個特定時間執行某一個自己撰寫的程式執行檔案,但是壞處是我得獨立一個專案,如果以簡易的排程來說太麻煩,本身有API站台要發佈,排程若有更新則需要再發佈一個排程的執行擋。

筆者期初的想法是能找到一個套件依附於API站台專案中,因筆者針對測試環境,有設定WebDeploy的功能,因此很容易發佈更新版本,不需要手動發佈執行檔檔案並調整Windows排程。筆者有在關注ASP.NET CORE Developer Roadmap,不時會在上面找好料,Coravel本身也是從其中的TaskScheduling區塊中找到,就試著用用看吧

閱讀全文 »

前情提要

現在開發網頁幾乎都切換成前後端分離的開發方式,前端採用 Angular, Vue, React三大框架之一,後端則只要撰寫API服務即可,一來職責分離,前端適合處理畫面的互動效果,後端搭配資料庫處理商業邏輯的運算,使用json格式傳送結果至前端,多完美的協作阿。

通常簡單驗證邏輯會放在前端做處理,畢竟不用花費傳送成本,例如必填、長度等簡單邏輯驗證,直接在前端實作即可,但畢竟後端需要將資料儲存至資料庫,若沒有再做進一步驗證則資料儲存失敗的風險,以及日後資料運算使用時的困難。又或者系統本身需要透過http與其他系統介接,其他系統直接打我方API,這種情境就不需多說,需要在後端做驗證,連必填、長度等簡單邏輯驗證也必須做在後端。

閱讀全文 »

前情提要

筆者有幸參與到科內負責的大系統,不能單靠一個API站台就解決所有的需求,必須搭配SchedulerWindowsService等服務,介接技術上,可能會用Socket或是HttpClient介接,再加上自己系統本身,分散多個專案,中間使用Message Queue技術串聯起來,算是一個滿有挑戰性的系統了,挑戰主要是在串連服務的難度上,而非高流量。因此追蹤問題上,需要靠Loggin機制,由於各式各樣的服務,不能單靠底層Logging套件:NLog預設的紀錄欄位,針對不同種類的服務,做一個客製化屬性欄位的擴充才行。

閱讀全文 »

前情提要

筆者因處在比較嚴格的金融業中,撰寫的資訊系統上線後,追蹤系統作業面,只能靠強而有力的Log機制來追縱問題,以利快速找出問題所在,包含sql logap log以及error log,最好發生Error時寄信的方式通知。筆者本身推崇不重新造輪子,基本上訪間已經有很多很成熟的logging框架dotnet core中也不乏候選套件:NLogSeriLogLog4net等等,筆者選擇NLog當作主要Logging機制的底層框架。

閱讀全文 »

前情提要

筆者上篇介紹完MySQL安裝與設定後,這篇則是紀錄安裝範例資料,筆者使用MySQL Tutorial所使用的範例資料,安裝範例資料庫也是參考該網站上面的兩篇文章,詳細資料庫中的相關資料表內容,可以觀看參考中兩篇文章的詳細內容。

閱讀全文 »

前情提要

筆者想要將所學技術紀錄於部落格中,若撰寫資料庫相關套件介紹文章時,因牽扯到公司機密性,需要用自己建立的範例資料庫,筆者這邊環境是Windows跟Mac都有,但一般平常帶出去都是Mac,畢竟電量樂勝,因此也常有機會使用Mac撰寫部落格文章,撰寫相關的demo code時需要連線至實際資料庫,最好是Windows、Mac環境通用的資料庫,筆者選擇MySQL,因此這篇要來介紹在Mac環境中MySQL安裝與設定。

閱讀全文 »