返回顶部
首页 > 资讯 > 精选 >Springboot怎么通过Scheduled实现定时任务
  • 476
分享到

Springboot怎么通过Scheduled实现定时任务

springboot 2023-05-30 19:05:58 476人浏览 安东尼
摘要

小编给大家分享一下SpringBoot怎么通过Scheduled实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!定时任务一般会存在中大型企业级项目中,为

小编给大家分享一下SpringBoot怎么通过Scheduled实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

定时任务一般会存在中大型企业级项目中,为了减少服务器数据库的压力往往会采用时间段性的去完成某些业务逻辑。比较常见的就是金融服务系统推送回调,一般支付系统订单在没有收到成功的回调返回内容时会持续性的回调,这种回调一般都是定时任务来完成的。还有就是报表的生成,我们一般会在客户访问量过小的时候来完成这个操作,那往往都是在凌晨。这时我们也可以采用定时任务来完成逻辑。springBoot为我们内置了定时任务,我们只需要一个注解就可以开启定时为我们所用了。

开发中,定时任务是常见的功能,在Spring Boot 下开发定时任务其实很简单,具体代码如下:

配置依赖包pom.xml

由于默认的Maven仓库经常访问不了,这里采用了阿里云的maven仓库镜像。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="Http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.example</groupId>  <artifactId>demo</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <name>spring-boot-scheduled</name>  <description>Demo project for Spring Boot</description>  <!-- 阿里云maven仓库 -->  <repositories>    <repository>      <id>public</id>      <name>aliyun nexus</name>      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>      <releases>        <enabled>true</enabled>      </releases>    </repository>  </repositories>  <pluginRepositories>    <pluginRepository>      <id>public</id>      <name>aliyun nexus</name>      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>      <releases>        <enabled>true</enabled>      </releases>      <snapshots>        <enabled>false</enabled>      </snapshots>    </pluginRepository>  </pluginRepositories>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>1.4.5.RELEASE</version>    <relativePath /> <!-- lookup parent from repository -->  </parent>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>    <java.version>1.8</java.version>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-WEB</artifactId>    </dependency>    <dependency>      <groupId>org.projectlombok</groupId>      <artifactId>lombok</artifactId>      <optional>true</optional>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build></project>

定制任务场景

定时任务实现,提供固定周期、固定周期延迟间隔和制定时间点执行等场景。采用@Scheduled注解进行标注。

ExampleTimer.java

package com.example;import java.text.SimpleDateFORMat;import java.util.Date;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;@Componentpublic class ExampleTimer {SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");@Scheduled(fixedRate = 10000)    public void timerRate() {System.out.println(dateFormat.format(new Date()));}//第一次延迟1秒执行,当执行完后2秒再执行@Scheduled(initialDelay = 1000, fixedDelay = 2000)    public void timerInit() {System.out.println("init : "+dateFormat.format(new Date()));}//每天20点16分50秒时执行@Scheduled(cron = "50 16 20 * * ?")    public void timerCron() {System.out.println("current time : "+ dateFormat.format(new Date()));}}

启动应用程序

启动程序,需要增加@EnableScheduling注解.

SpringBootScheduledApplication.java

package com.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication@EnableSchedulingpublic class SpringBootScheduledApplication {public static void main(String[] args) {SpringApplication.run(SpringBootScheduledApplication.class, args);}}

输出结果

20:16:27init : 20:16:28init : 20:16:30init : 20:16:32init : 20:16:34init : 20:16:3620:16:37init : 20:16:38init : 20:16:40init : 20:16:42init : 20:16:44init : 20:16:4620:16:47init : 20:16:48current time : 20:16:50init : 20:16:50init : 20:16:52init : 20:16:54

以上是“Springboot怎么通过Scheduled实现定时任务”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Springboot怎么通过Scheduled实现定时任务

本文链接: https://lsjlt.com/news/220888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Springboot怎么通过Scheduled实现定时任务
    小编给大家分享一下Springboot怎么通过Scheduled实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!定时任务一般会存在中大型企业级项目中,为...
    99+
    2023-05-30
    springboot
  • SpringBoot通过@Scheduled怎么实现定时任务及单线程运行
    这篇文章主要介绍“SpringBoot通过@Scheduled怎么实现定时任务及单线程运行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot通过@Scheduled怎么实现定时任务及...
    99+
    2023-07-05
  • Spring多线程通过@Scheduled实现定时任务
    目录一、前言二、定时任务调度注解@Scheduled三、使用@Async实现异步调度建立spring线程池为异步调度方法指定线程池一、前言 技术的入门大多比较简单,把别人的代码复制过...
    99+
    2024-04-02
  • spring-boot如何通过@Scheduled配置定时任务及定时任务@Scheduled注解
    这篇文章主要介绍了spring-boot如何通过@Scheduled配置定时任务及定时任务@Scheduled注解,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。串行的定时任务...
    99+
    2023-05-30
    spring boot
  • SpringBoot通过@Scheduled实现定时任务及单线程运行问题解决
    目录一、开启定时任务方法二、不同定时方式的解析1.fixedDelay和fixedRate,单位是毫秒,它们的区别就是:2.cron表达式:灵活三、实现定时任务四、解决定时任务单线程...
    99+
    2023-02-21
    springboot @scheduled实现定时任务 Springbootschedule单线程 springboot 定时任务
  • SpringBoot定时任务 @Scheduled详解
    博主在最近的开发中又遇到了关于定时调度的开发任务,在定时调度其实有很多的第三方平台可以接入,但是其实在SpringBoot有自带的定时任务注解@Scheduled。@Scheduled可以通过注解配置快速实现方法的定时调度,直接在方法加上@...
    99+
    2023-10-01
    spring boot java spring
  • SpringBoot定时任务怎么实现
    这篇文章主要讲解了“SpringBoot定时任务怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot定时任务怎么实现”吧!SpringBoot定时任务主要由两个注解完成...
    99+
    2023-06-05
  • SpringBoot中使用@scheduled定时执行任务的坑
    目录解决办法1.将@Scheduled注释的方法内部改成异步执行2.把Scheduled配置成成多线程执行要注意什么坑 不绕弯子了,直接说这个坑是啥: SpringBoot使用@sc...
    99+
    2024-04-02
  • springboot定时任务@Scheduled执行多次的问题
    目录springboot定时任务@Scheduled执行多次原因解决方法使用 @Scheduled 定时任务突然不执行了springboot定时任务@Scheduled执行多次 在s...
    99+
    2024-04-02
  • springBoot @Scheduled实现多个任务同时开始执行
    目录@Scheduled多个任务同时开始执行只需在springBoot启动类上添加@Scheduled多定时任务,重叠执行@Scheduled如果有两个定时任务如果想要多个定时任务重...
    99+
    2024-04-02
  • springboot定时任务和异步任务怎么实现
    这篇文章主要介绍“springboot定时任务和异步任务怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot定时任务和异步任务怎么实现”文章能帮助大家解决问题。异步任务简单案例...
    99+
    2023-06-27
  • Java中怎么实现SpringBoot定时任务
    今天就跟大家聊聊有关Java中怎么实现SpringBoot定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. SpringBoot--任务:定时任务项目开发中经常需要执行一些...
    99+
    2023-06-20
  • SpringBoot定时任务功能怎么实现
    本篇内容介绍了“SpringBoot定时任务功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 背景项目中需要一个可以动态新增定时...
    99+
    2023-06-30
  • SpringBoot整合定时任务之实现Scheduled注解的过程(一个注解全解决)
    目录一、使用场景二、准备工作三、开始搭建配置配置启动项四、结果展示五、总结一、使用场景 定时任务在开发中还是比较常见的,比如:定时发送邮件,定时发送信息,定时更新资源,定时更新数据等...
    99+
    2024-04-02
  • C#通过rabbitmq如何实现定时任务
    小编给大家分享一下C#通过rabbitmq如何实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:h...
    99+
    2023-06-15
  • C#通过rabbitmq实现定时任务(延时队列)
    本文主要讲解如何通过RabbitMQ实现定时任务(延时队列) 环境准备 需要在MQ中进行安装插件 地址链接 插件介绍地址:https://www.rabbitmq.com/blog/...
    99+
    2024-04-02
  • SpringBoot中定时任务@Scheduled注解的使用解读
    目录概述注解定义参数说明源码解析使用详解定时任务同步/异步执行fixedRate/fixedDelay区别项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled...
    99+
    2024-04-02
  • SpringBoot怎么使用Schedule实现定时任务
    本文小编为大家详细介绍“SpringBoot怎么使用Schedule实现定时任务”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot怎么使用Schedule实现定时任务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-05
  • Springboot如何实现定时任务
    这篇文章给大家分享的是有关Springboot如何实现定时任务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定时任务此处的定时,标注在方法上+注解,假如想修改生成环境的时间,不是很灵活,后面补充Quartz+bo...
    99+
    2023-06-17
  • springBoot @Scheduled如何实现多个任务同时开始执行
    springBoot @Scheduled如何实现多个任务同时开始执行,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。@Scheduled多个任务同时开始执行只需在...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作