• 第九章 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/
  • 相关阅读:
    CF1202F You Are Given Some Letters...
    CF1178E Archaeology
    PTA (Advanced Level) 1005 Spell It Right
    PTA (Advanced Level) 1004 Counting Leaves
    Qt5——从零开始的Hello World教程(Qt Creator)
    PTA (Advanced Level) 1003 Emergency
    PTA (Advanced Level) 1002 A+B for Polynomials
    HDU 1272 小希的迷宫
    FZU 2150 Fire Game
    HihoCoder
  • 原文地址:https://www.cnblogs.com/linbin524/p/15248862.html
Copyright © 2020-2023  润新知