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

基于SpringBoot自定义控制是否需要开启定时功能

在基于SpringBoot的开发过程中,有时候会在应用中使用定时任务,然后服务器上启动定时任务,本地就不需要开启定时任务,使用一个参数进行控制,通过查资料得知非常简单。

参数配置

application-dev.yml中加入如下配置

enable:scheduling: false

参数配置

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;public class SchedulerCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {// 读取配置return Boolean.parseBoolean(context.getEnvironment().getProperty("enable.scheduling"));}
}

参数使用

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Role;
import org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor;
import org.springframework.scheduling.config.TaskManagementConfigUtils;/*** 是否启用SpringBoot的定时功能*/
@Configuration
public class Scheduler {@Conditional(SchedulerCondition.class)@Bean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)@Role(BeanDefinition.ROLE_INFRASTRUCTURE)public ScheduledAnnotationBeanPostProcessor scheduledAnnotationProcessor() {return new ScheduledAnnotationBeanPostProcessor();}
}

或者其实也不需要SchedulerCondition,直接写也可以的

 @ConditionalOnProperty(name = "enable.scheduling", havingValue = "true")@Bean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)@Role(BeanDefinition.ROLE_INFRASTRUCTURE)public ScheduledAnnotationBeanPostProcessor scheduledAnnotationProcessor() {return new ScheduledAnnotationBeanPostProcessor();}

以上即可解决我的需求,在本地的时候使用dev的配置文件,服务器就用prod的配置文件,进行区分。

相关文章:

基于SpringBoot自定义控制是否需要开启定时功能

在基于SpringBoot的开发过程中,有时候会在应用中使用定时任务,然后服务器上启动定时任务,本地就不需要开启定时任务,使用一个参数进行控制,通过查资料得知非常简单。 参数配置 在application-dev.yml中加入如下配置 …...

“确定要在不复制其属性的情况下复制此文件?”解决方案(将U盘格式由FAT格式转换为NTFS格式)

文章目录 1.问题描述2.问题分析3.问题解决3.1 方法一3.2 方法二3.3 方法三 1.问题描述 从电脑上复制文件到U盘里会出现“确定要在不复制其属性的情况下复制此文件?”提示。 2.问题分析 如果这个文件在NTFS分区上,且存在特殊的安全属性。那么把它从NT…...

视频监控系统EasyCVR如何通过调用API接口查询和下载设备录像?

智慧安防平台EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台。视频流媒体服务器EasyCVR采用了开放式的网络结构,支持高清视频的接入和传输、分发,平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联…...

15.鸿蒙HarmonyOS App(JAVA)进度条与圆形进度条

15.鸿蒙HarmonyOS App(JAVA)进度条与圆形进度条 progressBar2.setIndeterminate(true);//设置无限模式,运行查看动态效果 //创建并设置无限模式元素 ShapeElement element new ShapeElement(); element.setBounds(0,0,50,50); element.setRgbColor(new RgbColor(255,0,0)); …...

【FastAPI】路径参数

路径参数 from fastapi import FastAPIapp FastAPI()app.get("/items/{item_id}") async def read_item(item_id):return {"item_id": item_id}其中{item_id}就为路径参数 运行以上程序当访问 :http://127.0.0.1:8000/items/fastapi时候 将会…...

【docker笔记】DockerFile

DockerFile Docker镜像结构的分层 镜像不是一个单一的文件,而是有多层构成。 容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。 如果删除了容器,也就是删除了其最上面的读写层&…...

React项目搭建流程

第一步 利用脚手架创建ts类型的react项目: 执行如下的命令:create-react-app myDemo --template typescript ; 第二步 清理项目目录结构: src/ index.tsx, app.txs, react-app-env.d.ts public/index.ht…...

QT DAY1作业

1.QQ登录界面 头文件代码 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> #include <QIcon> #include <QLabel> #include <QPushButton> #include <QMovie> #include <QLineEdit>class MyWidget : public QWidget {Q_OBJECTpu…...

Java后端开发——Mybatis实验

文章目录 Java后端开发——Mybatis实验一、MyBatis入门程序1.创建工程2.引入相关依赖3.数据库准备4.编写数据库连接信息配置文件5.创建POJO实体6.编写核心配置文件和映射文件 二、MyBatis案例&#xff1a;员工管理系统1.在mybatis数据库中创建employee表2.创建持久化类Employee…...

【UE Niagara 网格体粒子系列】02-自定义网格

目录 步骤 一、创建自定义网格体 二、创建Niagara系统 步骤 一、创建自定义网格体 1. 打开Blender&#xff0c;按下ShiftA来创建一个平面 将该平面旋转90 导出为fbx 设置导出选定的物体&#xff0c;这里命名为“SM_PlaneFaceCamera.fbx” 按H隐藏刚才创建的平面&#x…...

k8s 检测node节点内存使用率平衡调度脚本 —— 筑梦之路

直接上脚本&#xff1a; #! /bin/bash#对实际使用内存大于85%的机器停止调度&#xff0c;对实际使用内存小于70%的 关闭调度# 获取实际内存小于或等于70%的机器 memory_lt_70kubectl top nodes |awk NR>1{if($50<70) print $1} # 获取实际内存大于或等于85%的机器 memor…...

React Native集成到现有原生应用

本篇文章以MacOS环境开发iOS平台为例&#xff0c;记录一下在原生APP基础上集成React Native React Native中文网 详细介绍了搭建环境和集成RN的步骤。 环境搭建 必须安装的依赖有&#xff1a;Node、Watchman、Xcode 和 CocoaPods。 安装Homebrew Homebrew是一款Mac OS平台下…...

完全卸载grafana

先停掉grafana sudo systemctl stop grafana-server 查看要卸载的包的名字 yum list installed yum remove grafana-enterprise.x86_64 成功 删除grafana的数据目录 sudo rm -rf /etc/grafana/sudo rm -rf /usr/share/grafana/sudo rm -rf /var/lib/grafana/...

Vue2.组件通信

样式冲突 写在组件中的样式默认会全局生效。容易造成多个组件之间的样式冲突问题。 可以给组件加上scoped属性&#xff0c;让样式只作用于当前组件。 原理&#xff1a; 给当前组件模板的所有元素&#xff0c;加上一个自定义属性data-v-hash值&#xff0c;用以区分不同的组件。…...

CAS的超~详细介绍

什么是CAS CAS全称Compare and swap,是一种比较特殊的CPU指令. 字面意思:"比较并交换", 一个CAS涉及到以下操作: 我们假设内存中的原数据为V,旧的预期值A,需要修改的新值B. 1.比较A和V是否相等(比较) 2.如果相等,将B写入V.(交换) 3.返回操作是否成功. 伪代码 下面…...

Scott用户数据表的分析

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 如果想要知道某个用户所有的数据表: select * from tab; 此时结果中一共返回了四张数据表&#xff0c;分别为部门表&#xff08;dept&#xff09; &#xff0c;员工表&#xff08;emp&a…...

网络基础学习(3):交换机

1.交换机结构 &#xff08;1&#xff09;网线接口和后面的电路部分加在一起称为一个端口&#xff0c;也就是说交换机的一个端口就相当于计算机上的一块网卡。 如果在计算机上安装多个网卡&#xff0c;并让网卡接收所有网络包&#xff0c;再安装具备交换机功能的软件&#xff0…...

【软件测试学习笔记2】用例设计方法

1.能对穷举场景设计测试点&#xff08;等价法&#xff09; 等价类&#xff1a; 说明&#xff1a;在所有测试数据中&#xff0c;具有某种共同特征的数据集合进行划分 分类&#xff1a;有效等价类&#xff1a;满足需求的数据集合 无效等价类&#xff1a;不满足需求的数据集合 步…...

蓝桥杯 第三场 小白入门赛

召唤神坤 有意思&#x1f914;&#xff08;ikun&#xff09;。虽然是第一题但也要配得上神坤的身份。 思路1 枚举分母&#xff0c;选择一个数据结构来选出分母两侧最大的两个数做分子。2s常数大些也无碍。我选择好写的ST表 思路2 写两个 d p dp dp 分别表示 1 1 1 到 i…...

网络安全等级保护测评规划与设计

笔者单位网络结构日益复杂&#xff0c;应用不断增多&#xff0c;使信息系统面临更多的风险。同时&#xff0c;网络攻防技术发展迅速&#xff0c;攻击的技术门槛随着自动化攻击工具的应用也在不断降低&#xff0c;勒索病毒等未知威胁也开始泛滥。基于此&#xff0c;笔者单位拟进…...

网络安全入门:2026年转行网络安全完整路径图

网络安全入门&#xff1a;2026 年转行网络安全完整路径图 导语&#xff1a;2026 年&#xff0c;网络安全人才缺口达 150 万&#xff0c;平均薪资较传统 IT 岗位高出 30%。但 70% 的转行者因路径不清晰而失败。本文详解 2026 年转行网络安全的完整路径&#xff1a;学习路线、证…...

MCP2MQTT 完全指南:用 AI 自然语言控制硬件设备的开源 MCP 工具

前言 2025年4月&#xff0c;MCP2Everything 团队正式开源MCP2MQTT&#xff0c;这是全球首个将 MCP&#xff08;模型上下文协议&#xff09;与 MQTT 物联网协议无缝桥接的开源工具&#xff0c;彻底打通了 AI 大模型与物理硬件之间的"最后一公里"。无需编写任何胶水代码…...

MCP密钥安全管理的无侵入解决方案:mcp-safe-run工具详解

1. 项目概述&#xff1a;告别硬编码&#xff0c;拥抱安全的MCP密钥管理如果你和我一样&#xff0c;日常开发中深度依赖Claude、Cursor、Windsurf这类智能编码助手&#xff0c;那你肯定对Model Context Protocol&#xff08;MCP&#xff09;不陌生。MCP作为连接AI模型与外部工具…...

基于Vercel AI SDK与Next.js的聊天机器人模板开发实战

1. 项目概述&#xff1a;一个开箱即用的AI聊天机器人模板 如果你正在寻找一个能快速启动、功能齐全且易于定制的AI聊天机器人项目&#xff0c;那么Vercel官方出品的这个Chatbot模板绝对值得你花时间研究。它不是一个简单的Demo&#xff0c;而是一个生产就绪的、基于现代Web技术…...

5步解决网易云音乐NCM文件难题:ncmdumpGUI实战指南

5步解决网易云音乐NCM文件难题&#xff1a;ncmdumpGUI实战指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经遇到过这样的情况&#xff1a;在网易…...

大厂HR坦言:这3种“计算机巨坑”,90%的学生都在踩!如何逆袭成高薪抢手人?

文章指出&#xff0c;计算机专业就业难&#xff0c;但优秀人才依然稀缺。多数学生因方向错误导致努力白费。常见弯路包括&#xff1a;过度刷题缺乏项目、技术广博但不精、忽视GPA与实习。文章强调&#xff0c;学生需明确用人单位需求&#xff0c;重视项目与实习&#xff0c;夯实…...

Pega Helm Charts:Kubernetes上自动化部署Pega平台的完整指南

1. 项目概述与核心价值如果你正在或即将在Kubernetes上部署Pega Platform&#xff0c;那么pegasystems/pega-helm-charts这个项目绝对是你绕不开的“官方说明书”和“自动化工具箱”。简单来说&#xff0c;这是Pega官方维护的一套Helm Chart&#xff0c;专门用于将Pega Platfor…...

【独家】Lindy内部SLO白皮书泄露:自主工作流SLA达标率低于99.95%的5个致命信号

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy AI Agent自主工作流的核心架构与SLO哲学 Lindy AI Agent 的核心架构基于“自治闭环”&#xff08;Autonomous Closed Loop&#xff09;范式&#xff0c;将任务规划、工具调用、状态反馈与自校准能…...

观察不同时段通过Taotoken调用大模型的延迟稳定性表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察不同时段通过Taotoken调用大模型的延迟稳定性表现 在项目开发与线上服务中&#xff0c;API调用的响应延迟是影响开发者体验和系…...

从高通苹果专利战看芯片产业博弈:技术、商业与供应链的纠缠

1. 从一场专利诉讼看移动通信产业的权力游戏最近翻看一些老资料&#xff0c;看到一篇2017年关于高通、苹果和三星的行业评论&#xff0c;感触颇深。那会儿高通刚对苹果发起新一轮专利诉讼&#xff0c;要求禁售部分iPhone&#xff1b;三星则靠着存储芯片的行情&#xff0c;眼看要…...