关于Java中的定时任务

现实开发中,可能会经常使用到定时任务,也有可能会使用不到,在最近的项目开发中,我就使用到了定时任务,那么接下来我来总结一下我所使用的定时任务吧。

项目呢使用的是基本框架也就是SpringBoot+MybatisPlus,那么所使用的定时任务呢也就是SpringBoot自带的定时任务。

万事开头第一步,导入maven包,在最外层的pom.xml中导入如下代码:

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>

    <dependencies>
        <!-- SpringBoot 核心组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

那么由于是SpringBoot项目所以需要写一个Boot的启动类,在启动类上加入 @EnableScheduling 这样一个注解,进行全局的扫描,至于启动类上其余的注解就不一一赘述的哈。

接下来建立一个新的Job类(也就是一个普通的类),在类上面加入@Compant注解以及@Slf4j的注解,前者是方便上述注解能够扫描到当前的定时任务类,后者则是需要打印定时任务启动任务时需要的日志的。

接下来就可以继续写你的业余方法,但是需要在任务方法上写上一个注解 @Scheduled(cron="0 1 0 * * ?"),这个注解是告诉服务器我这个东西什么时候调用,关于这个注解里面的时间怎么填写,接下来会有一个详细的解释。

0 0 1 * * ? 每天1点执行

0 1 0 * * ? 每天零点1分执行一次

0 5/10 1 * * ?  每天1点的5分,15分,25分,35分,45分,55分这几个时间点执行

0 10 1 ? * 1 每周星期天,1点10分执行,1表示的事周天

0 10 1 ?* 1#3 每个月的第三个星期的星期天执行 #号只能出现在星期的位置

那么整个一个定时任务的大的框架就有了,接下来就是自己往业务方法里面写出自己的业务实现逻辑了。

发布了35 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41331645/article/details/105406230