http://www.dfobra.com

                                                                  【大发快乐8app】springboot定时任务怎么创建-java教程

                                                                  如果你想了解更多关于springboot的知识,可以点击:JAVA教程

                                                                  使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:

                                                                    一、基于注解(@Scheduled)

                                                                    二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了。

                                                                    三、基于注解设定多线程定时任务

                                                                  一、静态:基于注解

                                                                  基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响。

                                                                  1、创建定时器

                                                                  使用SpringBoot基于注解来创建定时任务非常简单,只需几行代码便可完成。 代码如下:

                                                                  @Component@Configuration      //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling   // 2.开启定时任务public class SaticScheduleTask {    //3.添加定时任务    @Scheduled(cron = "0/5 * * * * ?")    //或直接指定时间间隔,例如:5秒    //@Scheduled(fixedRate=5000)    private void configureTasks() {        System.err.println("执行静态定时任务时间: " + LocalDateTime.now());    }}

                                                                  Cron表达式参数分别表示:

                                                                    秒(0~5[9) 例如0/5表示每5秒

                                                                    分(0~59)

                                                                    时(0~23)

                                                                    日(0~31)的某天,需计算

                                                                    月(0~11)

                                                                    周几( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT)

                                                                  @Scheduled:除了支持灵活的参数表达式cron之外,还支持简单的延时操作,例如 fixedDelay ,fixedRate 填写相应的毫秒数即可。

                                                                  2、启动测试

                                                                  启动应用,可以看到控制台打印出如下信息:

                                                                  java11.png

                                                                  显然,使用@Scheduled 注解很方便,但缺点是当我们调整了执行周期的时候,需要重启应用才能生效,这多少有些不方便。为了达到实时生效的效果,可以使用接口来完成定时任务。

                                                                  二、动态:基于接口

                                                                  基于接口(SchedulingConfigurer

                                                                  1、导入依赖包

                                                                  <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter</artifactId>        <version>2.0.4.RELEASE</version>    </parent>    <dependencies>        <dependency><!--添加Web依赖 -->            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency><!--添加MySql依赖 -->             <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <dependency><!--添加Mybatis依赖 配置mybatis的一些初始化的东西-->            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</arti)factId>            <version>1.3.1</version>        </dependency>        <dependency><!-- 添加mybatis依赖 -->            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.4.5</version>            <scope>compile</scope>        </dependency>    </dependencies>
                                                                                  

                                                                  郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

                                                                  上一篇:Steam或将有中国特别版启动器,相关API接口已加入SDK - Steam,Valve,完美世界,V社,Steam中国
                                                                  下一篇:没有了