美文网首页
SpringBoot使用Quartz定时任务———以微信步数为例

SpringBoot使用Quartz定时任务———以微信步数为例

作者: cctN | 来源:发表于2018-10-24 19:22 被阅读15次

    SpringBoot使用Quartz定时任务———以微信步数为例

    Quartz:这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。
    话不多说看代码

    pom依赖

    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.10</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
    
    
            <dependency>
                <groupId>org.webjars</groupId>
                <artifactId>bootstrap</artifactId>
                <version>3.3.7-1</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
                <scope>true</scope>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
    
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-quartz</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.spring4all</groupId>
                <artifactId>swagger-spring-boot-starter</artifactId>
                <version>1.8.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>com.github.caspar-chen</groupId>
                <artifactId>swagger-ui-layer</artifactId>
                <version>0.0.6</version>
            </dependency>
        </dependencies>
    
    

    properties配置

    server.port=8080
    spring.thymeleaf.cache=false
    
    
    spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot_quartz?useUnicode=true&characterEncoding=utf-8&useSSL=false
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    ##连接池中最大的活跃连接数
    spring.datasource.tomcat.max-active=20  
    ##连接池中最大、最小的空闲连接数
    spring.datasoure.max-idle=8
    spring.datasoure.min-idle=8
    ##初始化连接数
    spring.datasoure.initial=10
    
    
    
    spring.jpa.database=mysql
    # 显示SQL语句
    spring.jpa.show-sql=true
    ##指定DDL mode (none, validate, update, create, create-drop)
    spring.jpa.properties.hibernate.hbm2ddl.auto=update
    
    

    QuartzConfig

    @Configuration
    public class QuartzConfig {
        @Autowired
        private SpringJobFactory springJobFactory;
    
        @Bean
        public SchedulerFactoryBean schedulerFactoryBean() {
            SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
            schedulerFactoryBean.setJobFactory(springJobFactory);
            return schedulerFactoryBean;
        }
    
        @Bean
        public Scheduler scheduler() {
            return schedulerFactoryBean().getScheduler();
        }
    }
    
    

    JobFactory

    @Component
    public class SpringJobFactory extends AdaptableJobFactory {
    
        @Autowired
        private AutowireCapableBeanFactory capableBeanFactory;
    
        @Override
        protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
            Object jobInstance = super.createJobInstance(bundle);
            capableBeanFactory.autowireBean(jobInstance);
            return jobInstance;
        }
    }
    
    

    更多点击查看git代码

    相关文章

      网友评论

          本文标题:SpringBoot使用Quartz定时任务———以微信步数为例

          本文链接:https://www.haomeiwen.com/subject/nrwxtqtx.html