Springboot之定时任务


前言

定时发送一些任务,在特定时间执行任务

例如: 定时抢购脚本,定时推送信息等等!

一、定时任务是什么?

定时执行任务,只有电脑不关机就可以在特定的时间去执行相应的代码,例如抢购脚本等

二、使用步骤

1.无需引入springboot自带

        只需在启动类加上注解 开启功能即可

package com.example.spingbootswagger;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableScheduling //开启定时功能的注解
@SpringBootApplication
public class SpingbootSwaggerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpingbootSwaggerApplication.class, args);
    }

}

2.创建配置service类

在配置类上加入:@Service注解

每写一个任务都有加一个    @Scheduled(cron = "") 注解 

package com.example.spingbootswagger.service;


import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
//TaskScheduler 任务调度程序

@Service
public class tasksService {
    // 秒 分 时 天 月 周几~
    // 0 * * * * 0-7  每个月的每天每时每分每秒周一到周七都会执行

    /**
     * 30 15 10 * * ? 每天10点15分30 执行
     *
     * 30 0/5 10,18 * * ? 每天10时18时每个五分钟执行
     * 0 15 10 ? * 1-6 每个月的周一到周六10.15分钟执行一次
     */

    @Scheduled(cron = "0/1 * * * * 0-7")
    public void hello3(){
        System.out.println("每秒打印");
    }

    @Scheduled(cron = "0/2 * * * * 0-7")
    public void hello(){
        System.out.println("每隔两秒打印");
    }

    @Scheduled(cron = "0/3 * * * * 0-7")
    public void hello1(){
        System.out.println("每个三秒打印");

    }
}

      

  3.Cron表达式介绍

Cron表达式是一个具有时间含义的字符串,字符串以5~6个空格隔开,分为6~7个域,格式为X X X X X X X。其中X是一个域的占位符。最后一个代表年份的域非必须,可省略。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。每个域最多支持一个前导零。

        域取值

        下表为Cron表达式中六个域能够取的值以及支持的特殊字符。

        

是否必要取值范围特殊字符
[0,59]* , - /
分钟[0,59]* , - /
小时[0,23]* , - /
日期[1,31]* , - /?L W
月份[1,12]或[JAN,DEC]* , - /
星期[1,7]或[MON,SUN]。若用[1,7]表达方式,1代表星期一,7代表星期日* , - / ? L #
[当前年份,2099]* , - /

                        取值示例

                                        以下为Cron表达式的取值示例。

0 15 10 ? * *每天上午10:15执行任务
0 15 10 * * ?每天上午10:15执行任务
0 0 12 * * ?每天中午12:00执行任务
0 0 10,14,16 * * ?每天上午10:00点、下午14:00以及下午16:00执行任务
0 0/30 9-17 * * ?每天上午09:00到下午17:00时间段内每隔半小时执行任务
0 * 14 * * ?每天下午14:00到下午14:59时间段内每隔1分钟执行任务
0 0-5 14 * * ?每天下午14:00到下午14:05时间段内每隔1分钟执行任务
0 0/5 14 * * ?每天下午14:00到下午14:55时间段内每隔5分钟执行任务
0 0/5 14,18 * * ?每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务
0 0 12 ? * WED每个星期三中午12:00执行任务
0 15 10 15 * ?每月15日上午10:15执行任务
0 15 10 L * ?每月最后一日上午10:15执行任务
0 15 10 ? * 6L每月最后一个星期六上午10:15执行任务
0 15 10 ? * 6#3每月第三个星期六上午10:15执行任务
0 10,44 14 ? 3 WED每年3月的每个星期三下午14:10和14:44执行任务
0 15 10 ? * * 20222022年每天上午10:15执行任务
0 15 10 ? * * *每年每天上午10:15执行任务
0 0/5 14,18 * * ? 20222022年每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务
0 15 10 ? * 6#3 2022,20232022年至2023年每月第三个星期六上午10:15执行任务
0 0/30 9-17 * * ? 2022-20252022年至2025年每天上午09:00到下午17:30时间段内每隔半小时执行任务
0 10,44 14 ? 3 WED 2022/2从2022年开始,每隔两年3月的每个星期三下午14:10和14:44执行任务

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值