iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot如何创建定时任务
  • 750
分享到

SpringBoot如何创建定时任务

springboot 2023-05-30 23:05:37 750人浏览 安东尼
摘要

这篇文章主要介绍SpringBoot如何创建定时任务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、静态定时任务(基于注解)基于注解来创建定时任务非常简单,只需几行代码便可完成。@Scheduled 除了支持灵活的

这篇文章主要介绍SpringBoot如何创建定时任务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、静态定时任务(基于注解)

基于注解来创建定时任务非常简单,只需几行代码便可完成。

@Scheduled 除了支持灵活的参数表达式cron之外,还支持简单的延时操作,例如 fixedDelay ,fixedRate 填写相应的毫秒数即可。

@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class SimpleScheduleConfig {  //3.添加定时任务  @Scheduled(cron = "0/5 * * * * ?")  private void configureTasks() {    System.err.println("执行定时任务1: " + LocalDateTime.now());  }}

Cron表达式参数分别表示:

秒(0~59) 例如0/5表示每5秒
分(0~59)
时(0~23)
月的某天(0~31) 需计算
月(0~11)
周几( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT)

启动应用,可以看到控制台的信息如下:

SpringBoot如何创建定时任务

诚然,使用Scheduled 确实很方便,但缺点是当我们调整了执行周期的时候,需要重启应用才能生效,这多少有些不方便。为了达到实时生效的效果,可以使用接口来完成定时任务。

二、动态定时任务(基于接口)

为了演示效果,这里选用 Mysql数据库mybatis 来查询和调整定时任务的执行周期,然后观察定时任务的执行情况。

1.引入依赖

  <!--依赖管理 -->  <dependencies>    <dependency><!--添加WEB依赖 -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency><!--添加Mybatis依赖 -->      <groupId>org.mybatis.spring.boot</groupId>      <artifactId>mybatis-spring-boot-starter</artifactId>      <version>1.3.1</version>    </dependency>    <dependency><!--添加Mysql依赖 -->      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <scope>runtime</scope>    </dependency>    <dependency><!--添加Test依赖 -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>  </dependencies>

2.添加数据库记录

在Navicat 连接本地数据库,随便打开查询窗口,然后执行脚本内容,如下:

DROP DATABASE IF EXISTS `socks`;CREATE DATABASE `socks`;USE `SOCKS`;DROP TABLE IF EXISTS `cron`;CREATE TABLE `cron` ( `cron_id` varchar(30), `cron` varchar(30) );INSERT INTO `cron` VALUES ('1', '0/5 * * * * ?');

SpringBoot如何创建定时任务

然后在项目中的application.yml 添加数据源:

#application.yml 配置如下:

spring: datasource:  url: jdbc:mysql://localhost:3306/socks?useSSL=false  username: root  passWord: root

3.创建定时器

数据库准备好数据之后,我们编写定时任务,注意这里添加的是TriggerTask,目的是循环读取我们在数据库设置好的执行周期,以及执行相关定时任务的内容。具体代码如下:

@Configuration@EnableSchedulingpublic class CompleteScheduleConfig implements SchedulinGConfigurer {  @Mapper  public interface CronMapper {    @Select("select cron from cron limit 1")    String getCron();  }  @Autowired  @SuppressWarnings("all")  CronMapper cronMapper;    @Override  public void configureTasks(ScheduledTaskReGIStrar taskRegistrar) {    taskRegistrar.addTriggerTask(        //1.添加任务内容(Runnable)        () -> System.out.println("执行定时任务2: " + LocalDateTime.now().toLocalTime()),        //2.设置执行周期(Trigger)        triggerContext -> {          //2.1 从数据库获取执行周期          String cron = cronMapper.getCron();          //2.2 合法性校验.          if (StringUtils.isEmpty(cron)) {            // Omitted Code ..          }          //2.3 返回执行周期(Date)          return new CronTrigger(cron).nextExecutionTime(triggerContext);        }    );  }}

4. 动态修改执行周期

启动应用后,查看控制台,打印时间是我们预期的每5秒一次:

SpringBoot如何创建定时任务

这时候打开Navicat ,将执行周期修改为每1秒执行一次,然后观察控制台打印效果:

SpringBoot如何创建定时任务

可以清楚看到执行周期已经改变,并且不需要我们重启应用,十分方便。

以上是“SpringBoot如何创建定时任务”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SpringBoot如何创建定时任务

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot如何创建定时任务
    这篇文章主要介绍SpringBoot如何创建定时任务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、静态定时任务(基于注解)基于注解来创建定时任务非常简单,只需几行代码便可完成。@Scheduled 除了支持灵活的...
    99+
    2023-05-30
    spring boot
  • MySQL如何创建定时任务
    这篇文章主要介绍MySQL如何创建定时任务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!定时任务是老生常谈了,因为我们总是需要定时修改特定的数据。实现它的方法肯定不止一种,但我在相当长一段时间里都是用程序编码去做的,...
    99+
    2023-06-28
  • oracle如何创建定时任务
    Oracle数据库没有内置的定时任务功能,但可以使用Oracle的Job Scheduler来实现类似的功能。以下是在Oracle数...
    99+
    2023-09-20
    oracle
  • 如何为Jenkins创建定时构建任务
    这篇文章主要介绍“如何为Jenkins创建定时构建任务”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何为Jenkins创建定时构建任务”文章能帮助大家解决问题。一、前言这里利用Jenkins创建一...
    99+
    2023-06-29
  • Laravel创建定时任务
            创建一个任务,创建成功后会在App/Console/Commands中生成一个以Test命名的文件,我们可以在这里面写我们的任务指令。 php artisan make:command Test         运行这...
    99+
    2023-09-02
    laravel php
  • Laravel8创建定时任务
    序言         这篇文章讲述的是一种最简单的创建定时任务的操作。 开始         Laravel8文档 Laravel8中文文档         创建一个任务,创建成功后会在App/Console/Commands中生成一个以T...
    99+
    2023-09-13
    php laravel
  • MySQL创建定时任务
    定时任务是老生常谈了,因为我们总是需要定时修改特定的数据。 实现它的方法肯定不止一种,但我在相当长一段时间里都是用程序编码去做的,今天突然想到“为什么一定要采用调用的方式...
    99+
    2024-04-02
  • Yii2 创建定时任务
    在我们项目开发中,需要使用定时任务来完成批处理业务,下面通过Yii2框架来实现定时任务 Yii2框架定时任务代码统一放在 ./console 目录下 简单的定时任务脚步文件 首先在console/co...
    99+
    2023-08-31
    php Yii
  • 如何在Linux中创建定时任务
    要在Linux中创建定时任务,可以使用crontab命令。以下是创建定时任务的步骤: 打开终端窗口。 输入以下命令来编辑cr...
    99+
    2024-03-15
    Linux
  • oracle数据库定时任务如何创建
    oracle 数据库创建定时任务的方法:dbms_scheduler 包:创建作业、程序,将程序与作业关联,安排作业。作业调度程序:使用图形界面创建和管理定时任务。dbms_job 包:...
    99+
    2024-04-19
    oracle
  • SpringBoot中如何定时任务
    SpringBoot中如何定时任务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这篇文章将介绍怎么通过spring去做调度任务。构建工程创建一个Springbo...
    99+
    2023-06-19
  • 为Jenkins创建定时构建任务
    目录一、前言二、创建定义任务1、新建任务2、General3、源码管理4、构建触发器5、构建环境6、构建7、构建后操作三、总结一、前言 在前面的文章中,我们添加SSH凭据,添加了凭据...
    99+
    2024-04-02
  • oracle怎么创建定时任务
    在 oracle 中创建定时任务可以使用 dbms_job 包,步骤如下:1. 创建一个 job(任务);2. 启用 job;3. 禁用 job;4. 删除 job;5. 查看 job ...
    99+
    2024-04-18
    oracle
  • Springboot如何实现定时任务
    这篇文章给大家分享的是有关Springboot如何实现定时任务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定时任务此处的定时,标注在方法上+注解,假如想修改生成环境的时间,不是很灵活,后面补充Quartz+bo...
    99+
    2023-06-17
  • springboot通过注解、接口创建定时任务详解
    目录springboot中定时任务的创建springboot通过注解创建定时任务首先引入pom直接上代码来一个栗子@Scheduled注解的各个参数springboot通过注接口创建...
    99+
    2024-04-02
  • MySQL 定时任务( Navicat创建方式)
    1.先看MySQL是否开启时间(off 开启,no 关闭) 如果是关闭状态执行 方法1:set GLOBAL event_scheduler = 1; 修改支持所有会话,但是MySQL重启就会失效 方法2:编辑my.cnf(/etc/m...
    99+
    2023-09-08
    java mysql
  • plsql怎么创建jobs定时任务
    在PL/SQL中,可以使用DBMS_SCHEDULER包来创建定时任务(job)。 以下是一个简单的示例来创建一个定时任务: BEG...
    99+
    2024-04-23
    plsql
  • Springboot异步任务和定时任务如何处理
    本文小编为大家详细介绍“Springboot异步任务和定时任务如何处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot异步任务和定时任务如何处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1...
    99+
    2023-06-30
  • SpringBoot如何设置动态定时任务
    这篇文章主要介绍了SpringBoot如何设置动态定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot如何设置动态定时任务文章都会有所收获,下面我们一起来看看吧。之前写过文章记录怎么在Sp...
    99+
    2023-07-02
  • SpringBoot动态定时任务如何实现
    这篇文章主要介绍了SpringBoot动态定时任务如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot动态定时任务如何实现文章都会有所收获,下面我们一起来看看吧。 执行定时任务的...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作