返回顶部
首页 > 资讯 > 精选 >SpringBoot项目中怎么使用@Scheduled读取动态参数
  • 946
分享到

SpringBoot项目中怎么使用@Scheduled读取动态参数

2023-06-25 12:06:16 946人浏览 泡泡鱼
摘要

本篇内容主要讲解“SpringBoot项目中怎么使用@Scheduled读取动态参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springBoot项目中怎么使用@Scheduled读取动态参

本篇内容主要讲解“SpringBoot项目中怎么使用@Scheduled读取动态参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springBoot项目中怎么使用@Scheduled读取动态参数”吧!

    使用@Scheduled读取动态参数

    1、基于@Scheduled可配置开发

    application.propertites: read.timer.parmas=0 0/1 * * * *

    定时类:

    @Componentpublic class ScheduledService {Logger logger= LoggerFactory.getLogger(ScheduledService.class);    @Scheduled(cron = "${read.timer.parmas}")    public void readConfigTable(){        logger.info("*****.read.timer.parmas");    }}

    启动类:

    @SpringBootApplication@EnableScheduling  //必须public class DataApplication {  public static void main(String[] args) {        SpringApplication.run(DataApplication.class,args);    }}

    2、基于代码实现

    (1)核心代码

    @Component@EnableSchedulingpublic class TestScheduledParams implements SchedulinGConfigurer{    Logger logger= LoggerFactory.getLogger(TestScheduledParams.class);     public static  String DEFAULT_CORN="0/3 * * * * *";    //##动态传参要给默认值。    public static String corn=DEFAULT_CORN;     @Override    public void configureTasks(ScheduledTaskReGIStrar taskRegistrar) {             taskRegistrar.addTriggerTask(new Runnable() {            @Override            public void run() {               // logger.info("定时任务逻辑");            }        }, new Trigger() {            @Override            public Date nextExecutionTime(TriggerContext triggerContext) {                //任务触发,可修改任务的执行周期                CronTrigger cronTrigger = new CronTrigger(corn);                 Date date = cronTrigger.nextExecutionTime(triggerContext);                return date;            }        });    }}

    (2)其他类或方法动态传参赋值

    TestScheduledParams.corn="0/20 * * * * *"

    Spring Boot Scheduled动态配置

    package cn.com.suntree.cmp.service;import cn.com.suntree.cmp.utils.CommonUtil;import lombok.extern.log4j.Log4j2;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.Trigger;import org.springframework.scheduling.TriggerContext;import org.springframework.scheduling.annotation.SchedulingConfigurer;import org.springframework.scheduling.config.ScheduledTaskRegistrar;import org.springframework.scheduling.support.CronTrigger;import org.springframework.stereotype.Component;import redis.clients.jedis.Jedis;import java.util.Date;@Component@Log4j2public class MyDynamicTask implements SchedulingConfigurer {//实现SchedulingConfigurer 接口    @Autowired    CommonUtil commonUtil;    @Autowired    TaskService taskService;    private static String cron;    @Override    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {//重写该方法        scheduledTaskRegistrar.addTriggerTask(doTask(), getTrigger());    }    private Runnable doTask() {        return new Runnable() {            @Override            public void run() {                log.info("-------------------------------执行"+cron);                taskService.monDay();//真正需要运行的逻辑代码            }        };    }    private Trigger getTrigger() {        return new Trigger() {            @Override            public Date nextExecutionTime(TriggerContext triggerContext) {                // 触发器                CronTrigger trigger = new CronTrigger(getCron());                return trigger.nextExecutionTime(triggerContext);            }        };    }    public String getCron() {        Jedis jedis = commonUtil.getJedis();        String newCron =  jedis.get("cron");//可以改成配置到数据库中        if (StringUtils.isEmpty(newCron)) {            jedis.set("cron","0 30 0 ? * Mon");            return "0 30 0 ? * Mon";        }        if (!newCron.equals(cron)) {            log.info(new StringBuffer("Cron has been changed to:'").append(newCron).append("'. Old cron was:'").append(cron).append("'").toString());            cron = newCron;        }        return cron;    }}

    到此,相信大家对“SpringBoot项目中怎么使用@Scheduled读取动态参数”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: SpringBoot项目中怎么使用@Scheduled读取动态参数

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

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

    猜你喜欢
    • SpringBoot项目中使用@Scheduled读取动态参数
      目录使用@Scheduled读取动态参数1、基于@Scheduled可配置开发2、基于代码实现spring boot Scheduled动态配置使用@Scheduled读取动态参数 ...
      99+
      2024-04-02
    • SpringBoot项目中怎么使用@Scheduled读取动态参数
      本篇内容主要讲解“SpringBoot项目中怎么使用@Scheduled读取动态参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot项目中怎么使用@Scheduled读取动态参...
      99+
      2023-06-25
    • 使用@Scheduled怎么读取动态配置文件
      使用@Scheduled怎么读取动态配置文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。@Scheduled读取动态配置文件application.yml配置文件得配置信息a...
      99+
      2023-06-15
    • springboot项目怎么读取resources目录下的文件
      这篇“springboot项目怎么读取resources目录下的文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“sprin...
      99+
      2023-07-05
    • 怎么使用bat启动springboot项目
      这篇“怎么使用bat启动springboot项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用bat启动spring...
      99+
      2023-06-08
    • Springboot项目启动时怎么使用命令动态指定环境
      这篇文章主要介绍了Springboot项目启动时怎么使用命令动态指定环境的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Springboot项目启动时怎么使用命令动态指定环境文章都会有所收获,下面我们一起来看看吧...
      99+
      2023-06-08
    • springboot项目中怎么使用Swagger
      今天小编给大家分享一下springboot项目中怎么使用Swagger的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、Sw...
      99+
      2023-07-05
    • 使用springboot logback动态获取application的配置项
      目录springboot logback动态获取application的配置项logback自身支持以下方式配置因此只能使用spring提供的标签来对此参数进行配置springboo...
      99+
      2024-04-02
    • 怎么在springboot项目中启动main函数
      这篇文章将为大家详细讲解有关怎么在springboot项目中启动main函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。springboot项目main函数启动在controller包下新...
      99+
      2023-06-15
    • SpringBoot项目怎么使用aop
      这篇“SpringBoot项目怎么使用aop”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot项目怎么使用a...
      99+
      2023-07-05
    • 怎么使用springboot获取控制器参数
      小编给大家分享一下怎么使用springboot获取控制器参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如题,这里介绍springboot 获取控制器参数有四种...
      99+
      2023-06-22
    • SpringBoot项目中怎么使用缓存Cache
      本文小编为大家详细介绍“SpringBoot项目中怎么使用缓存Cache”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot项目中怎么使用缓存Cache”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
      99+
      2023-07-06
    • vue-cli项目中img如何使用require动态获取图片
      目录vue-cli中img使用require动态获取图片vue-cli中图片显示问题1.手动引入2.相对路径3.绝对路径4.数据data中的图片vue-cli中img使用requir...
      99+
      2024-04-02
    • Python中Pandas怎么读取文件和读取CSV参数
      本篇内容主要讲解“Python中Pandas怎么读取文件和读取CSV参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中Pandas怎么读取文件和读取CSV参数”吧!一、Pandas...
      99+
      2023-07-06
    • SpringBoot项目中怎么实现MySQL读写分离
      这篇文章主要介绍了SpringBoot项目中怎么实现MySQL读写分离的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot项目中怎么实现MySQL读写分离文章都会有所收获,下面我们一起来看看吧。1...
      99+
      2023-07-02
    • springboot启动时怎么获取端口和项目名
      小编给大家分享一下springboot启动时怎么获取端口和项目名,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!springboot启动获取端口和项目名背景项目启动...
      99+
      2023-06-25
    • SpringBoot怎么读取资源目录中JSON文件
      本文小编为大家详细介绍“SpringBoot怎么读取资源目录中JSON文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot怎么读取资源目录中JSON文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
      99+
      2023-07-06
    • springboot中项目启动时实现初始化方法加载参数
      目录springboot项目启动,初始化方法加载参数1.@PostConstruct说明2.@PreDestroy说明第一种:注解@PostConstruct第二种:实现Comman...
      99+
      2024-04-02
    • Java怎么实现读取项目中的文件
      这篇文章主要讲解了“Java怎么实现读取项目中的文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现读取项目中的文件”吧!1. 读取json file1.1 Json depe...
      99+
      2023-07-05
    • 怎么使用dockerfile部署springboot项目
      这篇文章主要讲解了“怎么使用dockerfile部署springboot项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用dockerfile部署springboot项目”吧!一、d...
      99+
      2023-07-06
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作