Springboot 定时任务

  • pom.xml
    添加依赖,SpringBoot内置的定时,也可以用Quartz,一般内置的定时也可以满足绝大多数需求,主要是简单。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
  • Application.java
    添加@EnableScheduling注解
@SpringBootApplication
@EnableScheduling
public class IcloudSocketServiceApplication {

    public static ApplicationContext context;

    public static void main(String[] args) {
        // 启动容器
        context = SpringApplication.run(IcloudSocketServiceApplication.class, args);
    }
}
  • Task.java
    定义任务
@Component
public class RefreshPortTask {
    
    /**
     * 
     * @Title: process
     * @Description: 启动后30s执行第一次,之后在上一次执行完毕时间点之后 60 秒再执行
     * @param:
     * @return: void
     * @throws
     */
    @Scheduled(initialDelay = 30000, fixedDelay = 60000)
    private void process() {
       // 业务逻辑
    }
}

fixedDelay = 5000 这个周期是以上一个调用任务的完成时间为基准,在上一个任务完成之后,5s后再次执行。

fixedRate = 5000 这个周期是以固定速率执行,不管上一个周期是否结束,到点就执行。

initialDelay = 5000 表示启动后延迟5秒执行第一次。

@Scheduled(cron = “0 0 2 * * ?”) 也可以使用cron表达式配置。

第一位, 表示秒, 取值是0 ~ 59
第二位, 表示分. 取值是0 ~ 59
第三位, 表示小时, 取值是0 ~ 23
第四位, 表示天/日, 取值是0 ~ 31
第五位, 表示月份, 取值是1 ~ 12
第六位, 表示星期, 取值是1 ~ 7, 星期一,星期二…, 还有 1 表示星期日

(*) 星号,可以理解为每的意思,每秒、每分、每天、每月、每年…。
(?)问号,问号只能出现在日期和星期这两个位置,表示这个位置的值不确定,每天 3 点执行,因此第六位星期的位置,是不需要关注的,就是不确定的值;同时,日期和星期是两个相互排斥的元素,通过问号来表明不指定值,比如 1 月 10 日是星期一,如果在星期的位置另指定星期二,就前后冲突矛盾了。
(-)减号,表达一个范围,如在小时字段中使用“10 - 12”,则表示从 10 到 12 点,即 10、11、12。
(,)逗号,表达一个列表值,如在星期字段中使用“1,2,4”,则表示星期一、星期二、星期四。
(/)斜杠,如 x/y,x 是开始值,y 是步长,比如在第一位(秒),0/15 就是从 0 秒开始,每隔 15 秒执行一次,最后就是 0、15、30、45、60,另 */y,等同于 0/y。

0 0 3 * * ? :每天 3 点执行;
0 5 3 * * ?:每天 3 点 5 分执行;
0 5 3 ? * *:每天 3 点 5 分执行,与上面作用相同;
0 5/10 3 * * ?:每天 3 点的 5 分、15 分、25 分、35 分、45 分、55分这几个时间点执行;
0 10 3 ? * 1:每周星期天,3 点 10 分执行,注,1 表示星期天;
0 10 3 ? * 1#3:每个月的第三个星期,星期天执行,# 号只能出现在星期的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值