当前位置: 首页 > news >正文

Spring框架自带的定时任务:Spring Task详解

文章目录

  • 一、基本使用
    • 1、配置:@EnableScheduling
    • 2、触发器:@Scheduled
  • 二、拓展
    • 1、修改默认的线程池
    • 2、springboot配置
  • 三、源码分析
  • 参考资料

一、基本使用

1、配置:@EnableScheduling

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;@Configuration
// 可以省略
@EnableAsync
// 开启定时任务
@EnableScheduling
public class SchedulingConfiguration {
}

2、触发器:@Scheduled

注意:
1、要调度的方法必须有void返回,并且不能接受任何参数。
2、@Scheduled可用作可重复的注释。如果在同一个方法上发现了几个@Scheduled注解,那么它们中的每一个都将被独立处理,并为它们中的每一个触发一个单独的触发器。

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;import java.util.concurrent.TimeUnit;@Configuration
@EnableAsync
@EnableScheduling
public class SchedulingConfiguration {/*** 上一次调用结束和下一次调用开始之间的固定时间内执行* 也可以指定时间类型,默认是毫秒* @Scheduled(fixedDelay = 5, timeUnit = TimeUnit.SECONDS)*/@Scheduled(fixedDelay = 5000)public void doSomething() {System.out.println("每5秒触发一次");}/*** 以固定的时间间隔执行*/@Scheduled(fixedRate = 5, timeUnit = TimeUnit.SECONDS)public void doSomething2() {System.out.println("每5秒执行一次2");}/*** 第一次延迟1秒执行,之后每隔5秒执行一次*/@Scheduled(initialDelay = 1000, fixedRate = 5000)public void doSomething3() {// something that should run periodically}/*** 延迟1秒执行,一次性任务*/@Scheduled(initialDelay = 1000)public void doSomething4() {// something that should run only once}/*** cron表达式*/@Scheduled(cron="*/5 * * * * MON-FRI")public void doSomething5() {// something that should run on weekdays only}}

二、拓展

1、修改默认的线程池

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;@Configuration
public class TaskSchedulerConfig {// bean名称一定要是taskScheduler@Beanpublic ThreadPoolTaskScheduler taskScheduler() {ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();// 设置线程池大小scheduler.setPoolSize(5); // 设置线程名称前缀scheduler.setThreadNamePrefix("my-scheduler-"); // 设置任务拒绝策略scheduler.setRejectedExecutionHandler((r, executor) -> {System.err.println("Task " + r.toString() + " rejected from " + executor.toString());});// 初始化调度器scheduler.initialize(); return scheduler;}
}

2、springboot配置

springboot的配置:修改线程池大小等

spring.task.scheduling.pool.size=5
spring.task.scheduling.thread-name-prefix=config-scheduler-

三、源码分析

springboot默认会自动配置,创建一个ThreadPoolTaskScheduler:
但是默认的线程池的PoolSize是1!!!这是个坑,需要注意。
在这里插入图片描述
在这里插入图片描述

参考资料

https://docs.spring.io/spring-framework/reference/integration/scheduling.html

相关文章:

Spring框架自带的定时任务:Spring Task详解

文章目录 一、基本使用1、配置:EnableScheduling2、触发器:Scheduled 二、拓展1、修改默认的线程池2、springboot配置 三、源码分析参考资料 一、基本使用 1、配置:EnableScheduling import org.springframework.context.annotation.Config…...

DeepSeek 助力 Vue3 开发:打造丝滑的弹性布局(Flexbox)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

jwt 存在的无状态的安全问题与解决方案

背景我的需求 解决方法方案1:黑名单存在的问题解决方案问题成本估算: 方案2: 双token刷新核心解决的问题存在的问题 方案3: token与session结合成本估算 方案4: 长连接(websocket) 背景 jwt是无状态的,除了自动失效之外无法手动过期 举个例子: 当我们的token泄露或者密码泄露…...

【Python爬虫】爬取公共交通路网数据

程序来自于Github,以下这篇博客作为完整的学习记录,也callback上一篇爬取公共交通站点的博文。 Bardbo/get_bus_lines_and_stations_data_from_gaode: 这个项目是基于高德开放平台和公交网获取公交线路及站点数据,并生成shp文件,…...

Deepseek API+Python测试用例一键生成与导出-V1

在实际使用场景中,可能只需要获取需求文档中的部分内容,例如特定标题的正文部分、特定段落的表格内容,或者指定图片中的内容。为了满足这一需求,可以对文档清理工具进行优化,支持按标题提取内容、按章节提取表格和图片…...

如何为JAR设置定时重启?

AI越来越火了,我们想要不被淘汰就得主动拥抱。推荐一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站 前面我们说过了如何将jar交由Systemctl管理,下面我们…...

麒麟V10-SP2-x86_64架构系统下通过KVM创建虚拟机及配置虚机的NAT、Bridge两种网络模式全过程

文章目录 一、什么是虚拟化?虚拟化具有哪些优势 二、常见的虚拟化技术1、kvm介绍2、kvm工作原理3、kvm功能 三、安装kvm并启动第一个kvm机器1、环境准备2、安装kvm工具3、启动并设置开机自启 libvirtd 服务4、验证 KVM 模块是否加载5、上传系统镜像到指定目录6、网络…...

三方库总结

一、Glide 目标:熟练掌握各种使用方法,了解其设计,背后原理 如果我设计一个图片显示框架,我会怎么做? 1.加载图片资源-从网络上下载图片资源、从本地加载图片资源 如果是从网络上加载图片,需要用到相关的网…...

用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!

下载模型与数据 模型下载: huggingface: Qwen/Qwen2.5-7B-Instruct HF MirrorWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct 魔搭&a…...

知识图谱的推荐实现方案(Vue)

使用 Vue 实现知识图谱思维导图展示的完整方案,结合主流库和最佳实践: 一、技术选型 组件库特点适用场景MindElixir国产开源、中文文档完善、支持关系线教育类知识图谱GoJS功能强大、商业许可、适合复杂交互企业级应用(需付费)D3…...

Nessus安装

Nessus:https://pan.quark.cn/s/f5fb09b6d4fb 1.软件安装 点击安装,剩下的下一步即可。 直接下一步安装即可 2.Web端安装 会弹出一个web窗口 开始初始化 创建用户 开始初始化 3.Cracker 会弹一个黑窗口 运行完,回车即可。访问https://loc…...

【大模型基础_毛玉仁】0.概述

更多内容:XiaoJ的知识星球 【大模型基础_毛玉仁】 系列文章参考 系列文章 【大模型基础_毛玉仁】0.概述 【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 更新中。。。。。。 参考 书籍:大模型基础_完整版.pdf Github:https://github.co…...

quillEditor 禁用复制粘贴图片,以及class转style等问题

<template><div><div class"search-term"><el-form :inline"true" :model"searchInfo" class"demo-form-inline"><el-form-item label"案例标题"><el-input v-model"searchInfo.titl…...

C语⾔数据类型和变量

C 语言的数据类型 类型分类&#xff1a; C 语言提供丰富的数据类型&#xff0c;包括字符型&#xff08;char、signed char、unsigned char&#xff09;、整型&#xff08;short、int、long 等多种&#xff0c;且各有 signed 和 unsigned 修饰形式&#xff09; 、浮点型&#x…...

centOS 环境 安装redis方法

一、准备centOS环境 参考文章&#xff1a;Hyper-V 安装CentOS7_代码草率了的博客-CSDN博客 二、redis官网 地址&#xff1a;Download | Redis 演示版本为?redis-5.0.14.tar.gz 三、redis源码编译 登录后创建soft目录 进入目录使用wget下载所需资源包 命令&#xff1a;w…...

【Mac】2025-MacOS系统下常用的开发环境配置

早期版本的一个环境搭建参考 1、brew Mac自带终端运行&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" Installation successful!成功后运行三行命令后更新环境&#xff08;xxx是mac的username&a…...

深入理解动态绑定与多态

动态绑定介绍 Java中的动态绑定&#xff0c;是一种在程序运行时确定方法执行版本的过程。它与多态紧密联系。 在Java中&#xff0c;动态绑定通常发生在以下情况&#xff1a; 方法覆盖&#xff1a;当子类重写父类的一个方法时&#xff0c;调用该方法的行为会根据对象的实际类…...

【数据结构】二叉树总结篇

遍历 递归 递归三部曲&#xff1a; 1.参数和返回值 2.终止条件 3.单层逻辑&#xff08;遍历顺序&#xff09; var preorderTraversal function(root) { // 第一种let res[];const dfsfunction(root){if(rootnull)return ;//先序遍历所以从父节点开始res.push(root.val);//递归…...

Zookeeper 及 基于ZooKeeper实现的分布式锁

1 ZooKeeper 1.1 ZooKeeper 介绍 ZooKeeper是一个开源的分布式协调服务&#xff0c;它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集&#xff0c;并以一系列简单易用的接口提供给用户使用。 原语&#xff1a;操作系统或…...

内嵌踢脚线怎么做能省钱?

家里装修内嵌踢脚线应该怎么做&#xff1f;哪种做法更经济&#xff1f; 先回答内嵌踢脚线应该怎么做&#xff1f; 做内嵌踢脚线有两种办法&#xff0c;简单点来说就是前凸和后挖。 前凸是踢脚线安到原来墙面上&#xff0c;踢脚线是从墙面上凸出来的&#xff0c;想要实现内嵌的效…...

DeepSeek集成到VScode工具,让编程更高效

DeepSeek与VScode的强强联合&#xff0c;为编程效率树立了新标杆。 DeepSeek&#xff0c;一款卓越的代码搜索引擎&#xff0c;以其精准的索引和高速的检索能力&#xff0c;助力开发者在浩瀚的代码海洋中迅速定位关键信息。 集成至VScode后&#xff0c;开发者无需离开熟悉的编辑…...

大模型应用:多轮对话(prompt工程)

概述 在与大型语言模型&#xff08;如ChatGPT&#xff09;交互的过程中&#xff0c;我们常常体验到与智能助手进行连贯多轮对话的便利性。那么&#xff0c;当我们开启一个新的聊天时&#xff0c;系统是如何管理聊天上下文的呢&#xff1f; 一、初始上下文的建立 1. 创建新会…...

洛谷 P1601 A+B Problem(高精)详解c++

我们之前做题碰到的数据范围一般是10^9&#xff0c;多点会达到10^18级别&#xff0c;处理10^9用int就可以存下&#xff0c;10^18次方要用到long long&#xff0c;接着解决加减乘除的问题&#xff0c;但是当数据范围达到了10^10^6的时候&#xff0c;当数据的值特别⼤&#xff0c…...

【云原生】Spring Cloud是什么?Spring Cloud版本介绍

什么是SpringCloud 上一章节介绍了总体的SpringCloud的总体学习章节&#xff0c;因为最近项目刚好需要用到SpringCloud来搭建微服务项目、所以就跟着大家一起来再学习巩固下SpringCloud的相关知识 SpringCloud是基于SpringBoot提供了一套微服务解决方案&#xff0c;包括服务注…...

最节省成本的架构方案:无服务器架构

无服务器架构&#xff08;Serverless Architecture&#xff09;是一种颠覆性的云计算执行模型&#xff0c;它允许开发者专注于编写和部署代码&#xff0c;而无需担心底层服务器基础设施的管理。这种架构以其按需付费、自动伸缩和简化部署等优势&#xff0c;在成本优化方面表现出…...

C++入门续集:

1. 缺省参数&#xff1a; 我们看我们的上图&#xff0c;我们可以看我们的函数Func&#xff0c;我们可以看到我们的函数里面的参数写的是int a 0&#xff1b;这个写法是我们没有见过的&#xff0c;我们之前在C语言里面只见到过说是函数里面会设置参数&#xff0c;但是参数是没有…...

线代[9]|线性代数主要内容及其发展简史(任广千《线性代数的几何意义》的附录1)

文章目录 向量行列式矩阵线性方程组二次型 向量 向量又称为矢量&#xff0c;最初应用与物理学。很多物理量如力、速度、位移以及电场强度、磁感应强度等等都是向量。大约公元前350年前&#xff0c;古希腊著名学者亚里士多德就知道了力可以表示成向量&#xff0c;两个力的组合作…...

C++ Primer 动态内存与智能指针

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

AI在原型设计中的革命性应用:效率与创新的双重突破

引言 在数字化转型加速的今天&#xff0c;产品开发周期被压缩至前所未有的程度。原型设计作为产品开发的核心环节&#xff0c;其效率和质量直接影响最终产品的市场竞争力。传统原型设计流程依赖人工绘制、反复修改和用户测试&#xff0c;耗时且成本高昂。而人工智能&#xff0…...

网络学习(四)HTTPS中,SSL的单向认证与双向认证

目录 一、什么是SSL&#xff1f;1.1 SSL 的主要功能1.2 SSL 的工作原理1.3 SSL 的核心组件1.4 SSL 的应用场景1.5 SSL 与 TLS 的区别 二、SSL 单向认证、双向认证2.1 SSL 单向认证2.2 SSL 双向认证2.3 总结&#xff1a;SSL 单向认证和双向认证的区别 一、什么是SSL&#xff1f;…...

分类任务和回归任务的区别

分类任务和回归任务是机器学习中两种常见的监督学习任务&#xff0c;尽管它们都属于预测性的分析&#xff0c;但它们的目标和应用场景存在显著的差异。 分类任务 定义&#xff1a;分类任务是指将输入样本映射到一个有限且离散的类别集合中的过程。目标是对数据进行分类&#…...

android接入rocketmq

一 前言 RocketMQ 作为一个功能强大的消息队列系统&#xff0c;不仅支持基本的消息发布与订阅&#xff0c;还提供了顺序消息、延时消息、事务消息等高级功能&#xff0c;适应了复杂的分布式系统需求。其高可用性架构、多副本机制、完善的运维管理工具&#xff0c;以及安全控制…...

V4L2框架基础

一、V4L2视频设备驱动基础 1.V4L2是专门为Linux设备设计的整合视频框架&#xff08;其主要核心在Linux内核&#xff0c;相当于Linux操作系统上层的视频源捕获驱动框架&#xff09;。为上层访问系统底层的视频设备提供一个统一的标准接口。V4L2驱动框架能够支持多种类型&#x…...

【微知】如何通过mlxlink查看Mellanox网卡和光模块相关的信息?( mlxlink -d 01:00.0 -m)

背景 通过mlxlink可以查看Mellanox网卡的一些链路信息和硬件信息&#xff0c;也可以查看所插入的光模块的一些信息。 兄弟篇通过ethtool查看的方法&#xff1a;如何查看Mellanox网卡上的光模块的信息&#xff1f; 命令 mlxlink -d 01:00.0 -mman手册介绍&#xff1a; 如果…...

使用pytorch和opencv根据颜色相似性提取图像

需求&#xff1a;将下图中的花朵提取出来。 代码&#xff1a; import cv2 import torch import numpy as np import timedef get_similar_colors(image, color_list, threshold):# 将图像和颜色列表转换为torch张量device torch.device(cuda if torch.cuda.is_available() el…...

HTML label 标签使用

点击 <label> 标签通常会使与之关联的表单控件获得焦点或被激活。 通过正确使用 <label> 标签&#xff0c;可以使表单更加友好和易于使用&#xff0c;同时提高整体的可访问性。 基本用法 <label> 标签通过 for 属性与 id 为 username 的 <input> 元素…...

SQL注入的分类靶场实践

前言 SQL 注入&#xff08;SQL Injection&#xff09;是一种常见且危险的 Web 安全漏洞&#xff0c;攻击者通过在输入字段中插入恶意 SQL 代码&#xff0c;能够绕过应用程序的验证机制&#xff0c;直接操纵数据库。本文将介绍 SQL 注入的分类&#xff0c;并通过 Pikachu 靶场进…...

用matplotlib构建BI看板:Superset插件开发实战

目录 前言&#xff1a;当经典可视化库遇见BI航母 一、Superset插件架构精要 1.1 核心模块解析 1.2 插件通信机制 二、开发环境准备 2.1 依赖矩阵 三、开发自定义可视化插件 3.1 插件脚手架 3.2 渲染引擎适配 四、Superset深度集成 4.1 控制面板配置 4.2 动态参数传递…...

【Linux】之【Bug】VMware 虚拟机开机 一直卡在黑屏左上角下划线闪烁界面

解决 参考&#xff1a; 解决Ubuntu20.04 开机黑屏光标闪烁进不去系统 Centos根目录100%解决思路 当前界面 ctrlaltf3-f6 暂时进入终端界面 df -h 查看发现根目录 磁盘空间已满 执行命令 查看当前目录占用内存明细 sudo du -h -x --max-depth1清理无用的大内存文件 或者安装…...

【练习】【链表】力扣热题100 19. 删除链表的倒数第 N 个结点

题目 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&…...

SQL-labs13-16闯关记录

http://127.0.0.1/sqli-labs/less-13/ 基于POST单引号双注入变形 1&#xff0c;依然是一个登录框&#xff0c;POST型SQL注入 2&#xff0c;挂上burpsuite&#xff0c;然后抓取请求&#xff0c;构造请求判断漏洞类型和闭合条件 admin 发生了报错&#xff0c;根据提示闭合方式是(…...

【Linux】进程信号——信号保存和信号捕捉

文章目录 信号保存信号相关的概念信号是如何保存的呢&#xff1f;有关信号保存的系统调用sigprocmask信号的增删查改查看pending表验证接口 信号捕捉用户态与内核态信号捕捉流程 总结 信号保存 信号相关的概念 信号递达&#xff1a;指 操作系统 将一个信号&#xff08;Signal…...

任务9:交换机基础及配置

CSDN 原创主页&#xff1a;不羁https://blog.csdn.net/2303_76492156?typeblog 一、交换机基础 交换机的概念&#xff1a;交换机是一种网络设备&#xff0c;用于连接多台计算机或网络设备&#xff0c;实现数据包在局域网内的快速交换。交换机基于MAC地址来转发数据包&#x…...

【DFS/回溯算法】2016年蓝桥杯真题之路径之谜详解

目录&#xff1a; 1.题目描述&#xff1a; 输入格式 输出格式 2.题解&#xff1a; 3.详细c代码 1.题目描述&#xff1a; 小明冒充 X 星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。…...

深度学习R8周:RNN实现阿尔兹海默症(pytorch)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 数据集包含2149名患者的广泛健康信息&#xff0c;每名患者的ID范围从4751到6900不等。该数据集包括人口统计详细信息、生活方式因素、病史、临床测量、认知和功…...

字节跳动发布 Trae AI IDE!支持 DeepSeek R1 V3,AI 编程新时代来了!

3 月 3 日&#xff0c;字节跳动重磅发布国内首款 AI 原生集成开发环境&#xff08;AI IDE&#xff09;——Trae 国内版&#xff01; Trae 不只是一个传统的 IDE&#xff0c;它深度融合 AI&#xff0c;搭载 doubao-1.5-pro 大模型&#xff0c;同时支持DeepSeek R1 & V3&…...

智能合约安全指南 [特殊字符]️

智能合约安全指南 &#x1f6e1;️ 1. 安全基础 1.1 常见漏洞类型 重入攻击整数溢出权限控制缺陷随机数漏洞前后运行攻击签名重放 1.2 安全开发原则 最小权限原则检查-生效-交互模式状态机安全失败保护机制 2. 重入攻击防护 2.1 基本防护模式 contract ReentrancyGuarde…...

DeepSeek 全套资料pdf合集免费下载(持续更新)

有很多朋友都关注DeepSeek相关使用的教程资料&#xff0c;本站也一直持续分享DeepSeek 学习相关的pdf资料&#xff0c;由于比较零散&#xff0c;这篇文章主要就是做一个汇总&#xff0c;并且持续更新&#xff0c;让大家可以及时获取下载最新的相关DeepSeek的资料。 持续更新地…...

IDEA 接入 Deepseek

在本篇文章中&#xff0c;我们将详细介绍如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek&#xff0c;让你的 AI 编程助手更智能&#xff0c;提高开发效率。 一、前置准备 在开始之前&#xff0c;请确保你已经具备以下条件&#xff1a; 安装了 JetBrains IDEA&…...

将md格式转jupyter并运行

将md格式转jupyter并运行 有时候我们需要将这种文档以学习的形式记笔记到jupyter中&#xff08;任务&#xff09; 但是内容太多了&#xff0c;一个一个粘贴又不方便&#xff0c;怎么办呢&#xff1f; 发现直接粘贴到md中是带格式的&#xff01;&#xff01;&#xff01; 那…...