SpringBoot2.x简单实现定时任务功能_springboot2.x获取scheduler @enablescheduling-程序员宅基地

技术标签: spring boot  java  intellij-idea  springboot  

SpringBoot2.x简单实现定时任务功能

1、新建一个SpringBoot项目

可以使用https://start.spring.io/快速新建一个SpringBoot项目。

本教程使用的是2.7.4版本

2、启动类启用定时

在启动类上面加上@EnableScheduling即可开启定时

@EnableScheduling
@SpringBootApplication
public class CanalStatisticsApplication {
    

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

}

3、新建一个ScheduledService.java类


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * @author wumeng 2022/6/16 2:40 下午
 */
@Service
public class ScheduledService {
    

    private Logger logger = LoggerFactory.getLogger(this.getClass());
    /**
     * 上一次开始执行时间点之后5秒再执行
     * */
    @Scheduled(fixedRate = 5000)
    public void scheduled1() {
    
        logger.info("=====>>>>>使用fixedRate执行定时任务");
    }
    /**
     * 上一次执行完毕时间点之后10秒再执行
     */
    @Scheduled(fixedDelay = 10000)
    public void scheduled2() {
    
        logger.info("=====>>>>>使用fixedDelay执行定时任务");
        try {
    
            Thread.sleep(5 * 1000);
        }
        catch (InterruptedException e){
    
            e.printStackTrace();
        }
        //加上延迟的5秒,总计 15秒执行一次
    }
    /**
     * 每隔6秒执行一次
     * 详见cron表达式
     *      秒 分 时 日 月 周几
     *      0 52 16 * * ?     每天16:52:00执行一次
     *      30 0/5 10,18 * * ?  每天的10点和18点,每隔5分钟执行一次
     * */
    @Scheduled(cron="*/6 * * * * ?")
    private void scheduled3(){
    
        logger.info("使用cron执行定时任务");
    }

}

@Scheduled(fixedRate = 6000) :上一次开始执行时间点之后6秒再执行
@Scheduled(fixedDelay = 6000) :上一次执行完毕时间点之后6秒再执行
@Scheduled(initialDelay=1000, fixedRate=6000) :第一次延迟1秒后执行,之后按fixedRate的规则每6秒执行一次
@Scheduled(cron=“”):详见cron表达式

4、多线程执行定时任务

默认的是单线程执行,如果想实现多线程可以再application.properties文件添加一下配置

# 定时任务线程为100
spring.task.scheduling.pool.size=100

到此运行项目就可以看到任务的打印输出了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wm9028/article/details/125317198

智能推荐

Windows Dll 动态加载_windows动态加载dll-程序员宅基地

文章浏览阅读1.3k次。Windows DLL 动态加载1. 起因2. 问题原因3. 解决3.1 C++ 版3.2 C#版1. 起因写代码的时候,需要动态加载DLL,这是一个非常非常常规的操作对吧。然而在开发的时候表现的一切正常,但是打包后,在别的机子上死活加载不到dll。????2. 问题原因对于这个问题常见的原因无非就以下几个:DLL生成的有问题加载路径写的不对程序的权限不够我这里遇到的是权限不够,所以我以管理员权限运行程序,我以为我终于要解决问题的了,but给我返回了个126(无法找到指定模块)…苦思冥_windows动态加载dll

The selected directory is not a valid home for Go SDK GOROOT_goland 2019.2.3 兼容go什么版本-程序员宅基地

文章浏览阅读448次,点赞3次,收藏2次。Goland2019.2.3 版本 安装 Go1.17.2后需要设置GOROOT路径,选择sdk时报错:The selected directory is not a valid home for Go SDK网上查了一圈都没有解决后重新安装了Go1.16.9版本,重新设置,解决!应该是Go1.17.2 Goland没有兼容吧,不知道什么时候可以解决........._goland 2019.2.3 兼容go什么版本

OpenGL矩阵学习_opengl 矩阵乘法-程序员宅基地

文章浏览阅读823次。MatrixOverviewOpenGL中的坐标系World Coordinates(世界坐标系)Object Coordinates(对象坐标系、模型坐标系、局部坐标系或当前绘图坐标系)Eye Coordinates(眼坐标系或照相机坐标系)Clip Coordinates(裁剪坐标系)Normalized Device Coordinates (NDC) (归一化设备坐标系)Window Coordinates (Screen Coordinates)(屏幕坐标)_opengl 矩阵乘法

java ps流解包,视频流PS,PS封装H264-程序员宅基地

文章浏览阅读776次。出处: ISOIEC 13818-1PS流:PS流由PSGOP组成,每个PSGOP是由I帧起始的多帧集合,每个GOP之间没有相互依赖信息,可以剪切拼接。| PSGOP0 | PSGOP1 | PSGOP2 | PSGOP3 | PSGOP4 | ...... |PSGOP:PSGOP由一个或多个PS包组成,一个PS包包含一个PSH(PS Header)和若干个PES(Packetized Elem..._java组ps包

Codeforces Round #332 (Div. 2) D. Spongebob and Squares-程序员宅基地

文章浏览阅读791次。Spongebob is already tired trying to reason his weird actions and calculations, so he simply asked you to find all pairs of n and m, such that there are exactlyx distinct squares in the table consis

dubbo-admin的安装(安在centos中)_dubbo-admin安装在虚拟机上还是windows-程序员宅基地

文章浏览阅读260次。工具:dubbo-admin-2.5.4 apache-tomcat-7.0.47 xftp5和xshell 可有可无,是本人习惯使用的传输工具,和终端工具。本人是使用zookeeper作为dubbo的注册中心,所以需要先安装zookeeperzookeeper安装见https://blog.csdn.net/weixin_38497513/a..._dubbo-admin安装在虚拟机上还是windows

随便推点

阿里巴巴常考面试题目-程序员宅基地

文章浏览阅读132次。转自: http://blog.csdn.net/yuexianchang/article/details/72835932一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答: 1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、...

java 循环删除ftp_java连接FTP、删除、下载文件的方法-程序员宅基地

文章浏览阅读247次。本文共例举了二个连接FTP的方法,可以下载删除FTP上的文件,代码有点凌乱JAVA自带的方法importjava.io.BufferedInputStream;importjava.io.DataInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava..._java怎么杀掉ftp进程

windows运行基于Node.js搭建的web服务器程序的方法_web服务器的npm run start-程序员宅基地

文章浏览阅读474次。安装Node.js下载:https://nodejs.org/en/下载好.msi文件后,打开安装,按照提示进行即可。安装项目依赖绝大多数下载好了的Node.js项目,只有作者本人写的项目源码,但并没有项目依赖的各种其他文件。所以在运行之前需要把这些依赖的文件下载下来才行。方法是:用任意一款命令行程序(cmd、powershell、windows terminal、cmde..._web服务器的npm run start

嵌入式linux的开发流程_结合课程实验简述嵌入式linux系统的主要开发流程-程序员宅基地

文章浏览阅读1.1k次。嵌入式linux开发流程:1.搭建前期的开发环境,例如搭建linux主机环境,交叉编译器的安装,还有一些常用的开发辅助软件如source insight等等。2.学习对硬件的直接操作,这里和单片机操作类似,我们需要查看原理图还有数据手册对相应的寄存器进行操作,实现功能。这里只需要学会简单的IO,中断,定时器,串口就可以,后面的存储器,IIC,LCD,AD,DA等可以大致了解一下,需要用到时候着重学习。3.学会UBOOT的移植,这里不需要自己去编写,我们需要了解uboot的结构,并且对他进._结合课程实验简述嵌入式linux系统的主要开发流程

算法设计与分析基础(潘彦译)课后习题答案_算法设计与分析基础第三版课后答案潘彦-程序员宅基地

文章浏览阅读2.8w次,点赞64次,收藏550次。第一章课后习题答案第二章课后习题答案第三章课后习题答案第四章课后习题答案第五章课后习题答案第六章课后习题答案第七章课后习题答案第八章课后习题答案第九章课后习题答案_算法设计与分析基础第三版课后答案潘彦

agx 安装ros opencv_ROS入门学习五机器人感知-程序员宅基地

文章浏览阅读209次。第五讲 机器人感知1.机器视觉(图像校准、图像识别等)ROS中的图像数据(二维图像)显示图像类型 roslaunch usb_cam usb_cam-test.launch rostopic info /usb_cam/image_raw 查看图像消息 rosmsg show sensor_msgs/Image Header:消息头,包含消息序号,时间戳和绑定坐标系heigh..._roslaunch track_tag usb_cam_with_calibration.launch;

推荐文章

热门文章

相关标签