Spring Boot 中的 SpringTask 定时任务

引入

        在我们开发时难免会遇到一些需要定时来处理的事务,例如:订单倒计时结束后自动取消、每到周年纪念日会给用户发福利、用户的生日祝福,在遇到这种问题的时候我们就可以考虑使用Spring Task 定时任务。

介绍SpringTask

Spring Task是Spring框架中的一个模块,用于处理任务调度和定时任务。它提供了一种简单的方式来执行定时任务,例如在特定的时间间隔内执行某个方法或在固定的时间点执行某个任务。

Spring Task的主要特点包括:

  1. 非常简单易用:Spring Task提供了注解和配置方式来定义任务调度,使得任务调度变得非常简单。只需要在方法上加上注解或在配置文件中配置即可。

  2. 内置支持:Spring Task内置了多种任务调度机制,包括使用cron表达式调度任务、固定间隔调度任务等。开发者只需要选择适合自己的调度方式即可。

  3. 异步执行:Spring Task支持异步执行任务,可以提高系统的性能和响应速度。

  4. 灵活性:Spring Task可以与Spring的其他模块无缝集成,例如与Spring Boot、Spring MVC等。

使用Spring Task可以有效地管理系统中的定时任务,简化任务调度的开发和管理。它可以应用于各种场景,例如定时统计报表、定时备份数据等。

准备工作

添加完Springboot的依赖后就无需导入SpringTask的依赖坐标

在启动类上添加下面的注解来开启任务调度,实现定时任务

 @EnableScheduling

效果图如下:

使用SpringTask

在使用SpringTask的时候需要我们使用cron表达式

cron表达式

我们可以直接使用现有的cron生成器来写出cron表达式

 在线Cron表达式生成器 (qqe2.com)

在要执行的方法上面写如下注解

@Scheduled(cron = "")

cron后面的引号里面写上 cron表达式

下面就是一个代码就是实现每隔5秒触发一次

package com.sky.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 *
 * 自定义定时任务
 */
@Component
@Slf4j
public class MyTask {

    /**
     * 定时任务 每隔5秒触发一次
     *
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void executeTask() {
        log.info("定时任务开始执行{}",new Date());
    }

}

效果图

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值