線上文件:http://doc.yc-l.com/#/README

線上演示地址:http://yc.yc-l.com/#/login

原始碼github:https://github.com/linbin524/yc.boilerplate

原始碼gitee:https://gitee.com/linxuanming/yc.boilerplate

視訊教程:

元磁之力框架開源初心和框架設計介紹(上): https://www.bilibili.com/video/BV1VM4y1G7hC/

元磁之力框架開源初心和框架設計介紹(下): https://www.bilibili.com/video/BV15h411s7w6/

元磁之力框架資料庫表和程式碼生成使用教程實戰: https://www.bilibili.com/video/BV1oM4y137D5/

定時服務 Quartz.net

基礎介紹

Quartz.net 是YC.Boilerplate 整合定時服務模組,採用約定開發模式,統一繼承相關介面,實現自己業務開發。

採用IOC 注入模式是使用單例註冊

約定介面

  • ICronConfig 服務時間表達式設定,可以採用配置化拓展
  • IJobLibray 服務統一類庫集合
  • IJobsConfig 服務配置

操作基礎流程

  1. JobService目錄下新建 xxxJobService 資料夾,其中xxx 表示自定義服務名。
  2. 建立一個類 xxxJob 並繼承介面 IJobxxxJobExecute(IJobExecutionContext context)方法去具體編寫要進行定時服務的程式碼.
  3. 分別實現ICronConfigIJobLibrayIJobsConfig.
  4. 編寫完成後,在YC.ServiceWebApiQuartzModule.cs 去實現注入配置。
  5. YC.ServiceWebApiStartup.cs檔案中的執行如下操作
       _quartzRepository = quartzRepository;
    await _scheduler.Start(); List<IJobLibray> jobLibraysList = new List<IJobLibray>();
    //jobLibraysList.Add(new CreateDirFolderJobLibray());//指定的服務
    //jobLibraysList.Add(new WriteFileJobLibray());
    //jobLibraysList.Add(new DeleteLogJobLibray()); var list = await _quartzRepository.DefaultRunningServer(jobLibraysList);//自動開始服務。

設計說明

本模組設計本身是一套外掛化服務,但為了更好的web的開發模式配合,降低複雜度,所以統一在YC.QuartzService模組中去實現。

如果對外掛化模式感興趣,可參考我另一套外掛化模式開源Demo:https://github.com/linbin524/LBPL

拓展改造說明

  1. 可以根據外掛化模式,直接進行安裝服務模組不同進行注入;
  2. 可以根據提供的倉儲方法對服務進行暫停、啟用、關閉等控制,進行介面視覺化監控運維功能實現。
  3. 如果非注入模式,可以參考QuartzTest 採用工廠模式直接呼叫。