ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第九章 Net 5.0 快速开发框架 YC.Boilerplate --定时服务 Quartz.net

2021-09-09 21:32:58  阅读:264  来源: 互联网

标签:5.0 Quartz 服务 Boilerplate yc jobLibraysList https com YC


在线文档: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 采用工厂模式直接调用。

标签:5.0,Quartz,服务,Boilerplate,yc,jobLibraysList,https,com,YC
来源: https://www.cnblogs.com/linbin524/p/15248862.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有