zoukankan      html  css  js  c++  java
  • 第九章 Net 5.0 快速开发框架 YC.Boilerplate --定时服务 Quartz.net

    在线文档: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 采用工厂模式直接调用。
    笔者原创!如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载请添加原博客连接,否则保留追究法律责任的权利,谢谢! YC.Boilerplate 快速开发框架交流,请加群:1060819005 区块链交流请加QQ群:538327407(已满),群2:135019400. 我的博客地址:http://www.cnblogs.com/linbin524/
  • 相关阅读:
    单例模式
    collections额外数据类型
    logging的简单使用
    杂记
    字符编码
    面向对象编程简介
    logging模块
    re与subprocess模块
    oepnpyxl模块 与excle交互
    json序列化模块
  • 原文地址:https://www.cnblogs.com/linbin524/p/15248862.html
Copyright © 2011-2022 走看看