首页 > 其他分享 >spring boot timerask

spring boot timerask

时间:2023-07-16 18:38:19浏览次数:34  
标签:Scheduled spring boot 任务 Boot Spring timerask 执行 定时

Spring Boot TimerTask

什么是TimerTask?

TimerTask是Java中的一个类,它允许我们在预定的时间点执行指定的任务。TimerTask是一个抽象类,我们需要继承它并实现run()方法来定义要执行的任务。

Spring Boot中的TimerTask

在Spring Boot应用程序中也可以使用TimerTask来执行定时任务。Spring Boot提供了一个@Scheduled注解,可以轻松地创建定时任务。

使用@Scheduled注解

我们可以在Spring Boot应用程序的任何类或方法上使用@Scheduled注解来创建定时任务。这个注解可以添加到方法上,指定任务的执行时间。

示例代码:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyScheduledTasks {

    @Scheduled(fixedRate = 5000) // 每隔5秒执行一次
    public void task1() {
        System.out.println("Task 1 executed at: " + new Date());
    }

    @Scheduled(cron = "0 0 12 * * ?") // 每天中午12点执行
    public void task2() {
        System.out.println("Task 2 executed at: " + new Date());
    }
}

上面的代码中,我们定义了两个定时任务task1()task2()task1()方法将每隔5秒执行一次,task2()方法将在每天中午12点执行。

配置定时任务

为了使@Scheduled注解生效,我们需要在Spring Boot应用程序的配置类上添加@EnableScheduling注解。

示例代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class MyApplication {

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

上面的代码中,我们在MyApplication类上添加了@EnableScheduling注解,启用了定时任务的支持。

使用FixedRate和Cron表达式

@Scheduled注解支持两种方式来指定任务的执行时间:fixedRatecron

fixedRate

fixedRate属性指定了任务的执行间隔时间,单位是毫秒。任务将按照指定的间隔时间无限循环地执行。

cron

cron属性使用Cron表达式来指定任务的执行时间。Cron表达式是一个包含6个字段的字符串,每个字段代表了任务执行的时间。

下面是一些常用的Cron表达式示例:

  • 0 0/5 * * * ? - 每隔5分钟执行一次
  • 0 0 12 * * ? - 每天中午12点执行
  • 0 0 12 * * MON-FRI - 每周一到周五中午12点执行

总结

使用@Scheduled注解可以轻松地在Spring Boot应用程序中创建定时任务。我们可以使用fixedRate属性指定任务的执行间隔时间,也可以使用cron属性使用Cron表达式来指定任务的执行时间。通过合理使用定时任务,我们可以实现一些需要定时执行的功能,如数据备份、邮件发送等。

以上就是关于Spring Boot中使用TimerTask的简要介绍和示例代码。希望本文能对你理解和使用Spring Boot中的定时任务提供帮助。

标签:Scheduled,spring,boot,任务,Boot,Spring,timerask,执行,定时
From: https://blog.51cto.com/u_16175465/6739253

相关文章

  • spring boot sentinel设置限流规则
    SpringBootSentinel设置限流规则引言在高并发的系统中,为了保证系统的稳定性和可靠性,我们常常需要对系统的接口进行限流操作。限流是一种流量控制的手段,通过控制接口的访问频率或者并发数,保护系统不被过多的请求压垮。在SpringBoot中,我们可以使用Sentinel来进行接口的限流。S......
  • spring boot jar启动黑框就闪退
    如何解决“SpringBootJar启动黑框就闪退”问题简介在开发和部署SpringBoot应用程序时,有时候我们可能会遇到一个问题,即通过运行jar文件启动应用程序时,黑框闪现而无法正常启动。这个问题往往是由于缺少正确的启动命令所致。在本文中,我将向你介绍解决这个问题的步骤和相应的代码......
  • spring boot flowable 参数配置 重试参数配置
    SpringBootFlowable参数配置及重试参数配置概述在使用SpringBootFlowable框架开发工作流应用时,我们可能会遇到需要进行参数配置和重试参数配置的情况。本文将为刚入行的开发者介绍如何实现SpringBootFlowable参数配置及重试参数配置,并提供详细的步骤和代码示例。参数配置......
  • spring boot csv
    SpringBootCSV在现代的应用程序中,处理CSV(逗号分隔值)文件是一种常见的任务。CSV是一种以文本形式存储数据的文件格式,它使用逗号来分隔不同的值。在本文中,我们将介绍如何使用SpringBoot来处理CSV文件。什么是SpringBoot?SpringBoot是一个用于创建基于Spring框架的独立、可运行......
  • spring boot apk 后台下载
    使用SpringBoot实现后台下载APK文件在移动应用开发中,经常需要在后台下载APK文件,以便更新应用或提供新的版本。本文将介绍如何使用SpringBoot框架实现后台下载APK文件的功能。为什么选择SpringBoot?SpringBoot是一个开源的Java框架,可以帮助开发者快速构建独立的、生产级别的Sp......
  • Spring+SpringMVC+Thymeleaf 示例
    目录参考资料开发工具1环境准备2使用maven模板构建war工程2.1File->New->Other2.2选择【MavenProject】2.3选择maven模板2.4输入GroupId、ArtifactId、package2.5生成的项目工程2.6配置项目2.7完整工程目录3配置SpringMVC3.1引入Springjar3.2配置......
  • Spring Cloud 之OpenFeign
    SpringCloud之OpenFeign一:简介​ Feign是一个声明式(对比RestTemplate编程式)的服务客户端,即通过@FeignClient注解即可声明一个接口(interface)。还支持多种插拔式的配置如encoders/decoders(加解码),clients(不同的链接框架)......。SpringCloud集成了Eureka、SpringClo......
  • SpringBoot中通过自定义Jackson注解实现接口返回数据脱敏
    场景SpringBoot中整合ShardingSphere实现数据加解密/数据脱敏/数据库密文,查询明文:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131742091上面讲的是数据库中存储密文,查询时使用明文的脱敏方式,如果是需要数据库中存储明文,而在查询时返回处理后的数据,比如身份......
  • springboot中解决redissonClien无法注入,封装工具雷
    引用:https://blog.csdn.net/feiying0canglang/article/details/120464693问题来源前几天遇到一个循环依赖问题,是RedissonClient这个bean引起的。RedissonClient是由一个配置类(@Configuration注解的类)提供的,这配置类在初始化时(@PostConstruct注解的方法中)去获取RedissonClient这......
  • spring完整笔记
    第一章初识Spring1.1Spring简介Spring是一个为简化企业级开发而生的开源框架。Spring是一个IOC(DI)和AOP容器框架。IOC全称:InversionOfControl【控制反转】将对象控制权由程序员自己反转交个SpringDI全称:DependencyInjection【依赖注入】Spring管理对象与对......