前情提要
前提情要請參考[DotnetCore]泛型運用系列-Model設計篇,不過筆者還是在這邊再列一下會用到的技術觀念與套件:
- AutoMapper:運用於將檔案內容對應的物件轉成
EFCore
的物件時 - Generic Class/Method: 不想寫多個
Service
去處理多個檔案,設計成泛型形式以符合各種檔案類型 Attribute
: 透過Description Attribute
,註記其對應的Comlumn
欄位順序- Coravel:透過該套件,將寫好的
Service
掛成排程任務 - Extension Method:有一些通用的
Method
,不要落落等塞在一個Service中,因此轉換成可以共用的Extension Method
- EFCore:資料存取用開發套件
內容
此篇內容主要運用到Coravel
套件的Job
宣告方式,並將該Job
透過DI
方式注入,DotnetCore
世界中,DI
是一個顯性哲學,一切為DI
,因為DotnetCore
本身就已經有配置一套標準的DI底層框架,且是預設的,因此沒有不用的道理阿。
1 | public class DomainJob<T> : IInvocable |
接著將相關的Job
以及Service
注入於Dotnet Core
的DI Container
中
1 | // FtpService為從Ftp下載的實作 |
最後透過Coravel
的AddScheduler
的方法將上述Job
加進Coravel
的Scheduler
排程中
1 | app.ApplicationServices.UseScheduler(scheduler => |
結論
筆者發現,撰寫程式碼才不到三小時,花好多時間解釋其原理,卻花了筆者半天時間,由此可知要好好心存感激那些大神們願意花時間將自己所學知識發佈於部落格中,才能有一個正向回饋,自己所學運用於工作中,再反饋於部落格文章中,是一個正向的循環,希望這系列文章有幫助到你。
參考