石英+弹簧引导实现动态管理定时任务

  

项目实践过程中碰到一个动态管理定时任务的需求:针对每个人员进行信息的定时更新,具体更新时间可随时调整,启动,暂定等。

  

  

将每个人员信息的定时配置保存到数据库中,这样实现了任务的动态展示和管理。任务的每一次新增或变更,都会去数据库变更信息。

  

设置一个统一的任务管理器,专门负责动态任务的增删改查。

  

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;项目xmlns=" http://maven.apache.org/POM/4.0.0 " xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xsi: schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”比;   & lt; modelVersion> 4.0.0   & lt; groupId> com.example   & lt; artifactId> dynamic-quartz   & lt; version> 0.0.1-SNAPSHOT   & lt; packaging> jar   & lt; name> dynamic-quartz   & lt; description>动态定时任务管理& lt;/description>   & lt; parent>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-parent   & lt; version> 2.0.2.RELEASE   & lt; relativePath/比;& lt; !——从库中查找父——比;   & lt;/parent>   & lt; dependencies>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework   & lt; artifactId> spring-context-support   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-test   & lt; scope> test   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.mybatis.spring.boot   & lt; artifactId> mybatis-spring-boot-starter   & lt; version> 1.1.1   & lt;/dependency>   & lt; !——jdbc驱动程序在   & lt; dependency>   & lt; groupId> mysql   & lt; artifactId> mysql-connector-java   & lt; version> 5.1.44   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.quartz-scheduler   & lt; artifactId> quartz   & lt; version> 2.3.0   & lt;/dependency>   & lt;/dependencies>   & lt; build>   & lt; plugins>   & lt; plugin>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-maven-plugin   & lt;/plugin>   & lt;/plugins>   & lt;/build>   & lt;/project>   application.yml   春天:   数据源:   url: jdbc: mysql://localhost: 3306/wujiwen   用户名:根   密码:根   driver-class-name: com.mysql.jdbc.Driver   配置文件:   活动:开发   logback-spring.xml   & lt; configuration>   & lt; jmxConfigurator/比;   & lt; appender name=氨曜际涑觥眂lass=癱h.qos.logback.core.ConsoleAppender”比;   & lt;布局类=癱h.qos.logback.classic.PatternLayout”比;   & lt; pattern> %日期(%线程)% % 5水平记录器{80}- %味精% n   & lt;/layout>   & lt;/appender>   & lt;记录器name=" org.springframework比;   & lt;水平值=" https://www.yisu.com/zixun/ERROR "/比;   & lt;/logger>   & lt;记录器name=" org.mybatis比;   & lt;水平值=" https://www.yisu.com/zixun/ERROR "/比;   & lt;/logger>   & lt;记录器name=" java.sql.Connection比;   & lt;水平值=" https://www.yisu.com/zixun/DEBUG "/比;   & lt;/logger>   & lt;记录器name=" java.sql.Statement比;   & lt;水平值=" https://www.yisu.com/zixun/DEBUG "/比;   & lt;/logger>   & lt;记录器name=" java.sql.PreparedStatement比;   & lt;水平值=" https://www.yisu.com/zixun/DEBUG "/比;   & lt;/logger>   & lt;记录器name=" java.sql.ResultSet比;   & lt;水平值=" https://www.yisu.com/zixun/DEBUG "/比;   & lt;/logger>   & lt;记录器name=" org.apache.http比;   & lt;水平值=" https://www.yisu.com/zixun/INFO "/比;   & lt;/logger>   & lt;记录器name=" org.quartz比;   & lt;水平值=" https://www.yisu.com/zixun/INFO "/比;   & lt;/logger>   & lt; springProfile name=癲ev、test”比;   & lt; root>   & lt;水平值=" https://www.yisu.com/zixun/DEBUG "/比;   & lt; appender-ref ref=氨曜际涑觥?比;   & lt;/root>   & lt;/springProfile>   & lt;/configuration>      CronEntity.java      保存在数据库中的表达式管理器。      包com.example.dynamicquartz.bean;   进口java.io.Serializable;   进口java.util.Date;/* *   *创建IntelliJ IDEA。   * packageName: com.example.dynamicquartz.bean   *作者:wujw   *日期:2018/9/9十六23   *版本:1.0.0   *描述:待办事项   */公共类CronEntity实现Serializable {   私有静态最终长serialVersionUID=-3406421161273529348 l;   私人字符串id;   私人字符串标识;//用户标识   私人字符串cron;//表达式   私人字符串quarzName;//任务名称   私人字符串schedulerClass;//定时任务类   私人约会时间;   公共字符串getId () {   返回id;   }   公共空间setId (String id) {   这一点。id=id;   }   公共字符串getUserId () {   返回标识;   }   公共空间setUserId (String userId) {   这一点。用户id=标识;   }   公共字符串getCron () {   返回cron;   }   公共空间setCron(字符串cron) {   这一点。cron=cron;   }   公共字符串getQuarzName () {   返回quarzName;   }   公共空间setQuarzName(字符串quarzName) {   这一点。quarzName=quarzName;   }   公共字符串getSchedulerClass () {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

石英+弹簧引导实现动态管理定时任务