在线文档: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
服务配置
操作基础流程
- 在
JobService
目录下新建xxxJobService
文件夹,其中xxx
表示自定义服务名。 - 创建一个类
xxxJob
并继承接口IJob
,xxxJob
的Execute(IJobExecutionContext context)
方法去具体编写要进行定时服务的代码. - 分别实现
ICronConfig
、IJobLibray
、IJobsConfig
. - 编写完成后,在
YC.ServiceWebApi
的QuartzModule.cs
去实现注入配置。 - 在
YC.ServiceWebApi
的Startup.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
拓展改造说明
- 可以根据插件化模式,直接进行安装服务模块不同进行注入;
- 可以根据提供的仓储方法对服务进行暂停、启用、关闭等控制,进行界面可视化监控运维功能实现。
- 如果非注入模式,可以参考
QuartzTest
采用工厂模式直接调用。