elastic-job初识

导语

本人想基于elasticJob做一个简版(去除里面的zk以及一些用不到的功能),服务于现有的一些老项目。目的就是基于现有的基础设置,不想额外搭建zk等,顺便可以更深入学些elasticjob

正文

通过导入starter包引入

  1. Spring Boot的扩展机制:Spring Factories(SPI)
    1.1 Spring在META-INF/spring.factories文件中配置接口的实现类名称
    1.2 SpringFactoriesLoader实现了检索META-INF/spring.factories文件elastic-job初识
  2. 读取yml配置
    2.1 创建@ConfigurationProperties注解的配置类
    elastic-job初识
    2.2 @EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效
    2.3 @ConditionalOnProperty来控制Configuration是否生效
    (1)matchIfMissing = true:当配置不存在也生效
    2.4 @Configuration(proxyBeanMethods = false),lite模式下,直接返回新实例对象,提高Spring启动速度
    elastic-job初识

注册定时任务引导类

  1. 入口SnailJobBootStrapConfiguration#createJobBootstrapBeans
  2. 遍历配置的任务,并注册为ScheduleJobBootstrap
    elastic-job初识

启动定时任务

  1. 入口:ScheduleJobBootstrapStartupRunner#run
  2. 根据入口点进去会发现,最终调用的是quartz的Scheduler#scheduleJob --> scheduler.start();elastic-job初识

总结

本篇只是介绍个大概流程,后续会详细介绍里面的功能,愉快地造一波*

上一篇:最近公共祖先(LCA)


下一篇:Codeforces 1474F - 1 2 3 4 ...(矩阵乘法)