@Scheduled 如何读取动态配置文件

@Scheduled读取动态配置文件

application.yml配置文件得配置信息


agreeAccTask:
#
# 每3分钟执行一次,handTime: 0 0/3 * * * ?    每天晚上2点 handTime: 0 0 2 * * ?
#  指定几天内: day 1 表示当前天内,2表示二天内,依次类推
#  指定生成目录路劲: dir F:/agreeacc
 time: 0 0 2 * * ?
 day: 1
 dir: F:/agreeacc3

java后端

 * @Description:支付宝代扣对账文件定时生成
 */
@Slf4j
@Component
@EnableScheduling
public class AgreeAccTask {
    @Autowired
    private AgreeAccMapper agreeAccMapper;
    @Value("${agreeAccTask.day}")
    private String day;
    @Value("${agreeAccTask.dir}")
    private String dir;
    @Scheduled(cron="${agreeAccTask.time}")
    public void AgreeAccTask(){
        String today=DateUtil.date2String(new Date(),DateUtil.PATTERN_DATE);
        log.info("【生成代扣对账文件开始】日期:"+today);
        int j=Integer.parseInt(day);

SpringBoot @Scheduled 读取配置文件获取cron值

1、在类上加注解@Component,交给Spring管理

2、在@PropertySource指定配置文件名称,如下配置,指定放在src/main/resource目录下的application.properties文件

3、配置文件application.properties参考内容如下

#每秒钟执行一次
cron=0/1 * * * * *
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:/application.properties")
public class ScoreTask1 {

 @Scheduled(cron="${cron}")
 public void scoreTask(){
  System.out.println("从配置文件读取cron表达式定时器");
 }
}

进一步衍生,可以把开发环境跟生产环境cron表达式做环境隔离,这样每次打包部署,系统自动执行配置文件cron表达式,减少手动修改代码次数。

这里推荐一个在线生成cron表达式的工具 在线Cron表达式生成器

https://cron.qqe2.com/

注意cron表达式只能配置6位参数,即 秒分时 日月周,有时候生成器会生成7位参数,这样在java代码执行会报错的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Springboot读取配置文件及自定义配置文件的方法

    1.创建maven工程,在pom文件中添加依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency

  • spring schedule配置多任务动态cron(增删启停)

    一.背景 之前公司经常会遇到配置定时任务,简单的任务可以直接依赖spring. 简单任务直接使用 @scheduled 注解配合@EnableScheduling. 但是如何实现简单的动态cron呢? 开发原则: 尽可能在项目本身去实现,少依赖第三方框架,避免项目过于臃肿和复杂. 俩种任务调度方式: 二.本篇说明 springBoot 基础模块 spring-boot-starter-web 已经内置 schedule ,无需引入额外依赖. 先思考几个问题: 1.动态 cron 实现的原理 任务

  • spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    串行的定时任务 @Component public class ScheduledTimer { private Logger logger = Logger.getLogger(this.getClass()); /** * 定时任务,1分钟执行1次,更新潜在客户超时客户共享状态 */ @Scheduled(cron="0 0/1 8-20 * * ?") public void executeUpdateCuTask() { Thread current = Thread.curr

  • Java中spring读取配置文件的几种方法示例

    Spring读取配置XML文件分三步: 一.新建一个Java Bean: package springdemo; public class HelloBean { private String helloWorld; public String getHelloWorld() { return helloWorld; } public void setHelloWorld(String helloWorld) { this.helloWorld = helloWorld; } } 二.构建一个配

  • 读取spring配置文件的方法(spring读取资源文件)

    1.spring配置文件 复制代码 代码如下: <bean id="configproperties"          class="org.springframework.beans.factory.config.PropertiesFactoryBean">          <property name="location" value="classpath:jdbc.properties"/>

  • @Scheduled 如何读取动态配置文件

    @Scheduled读取动态配置文件 application.yml配置文件得配置信息 agreeAccTask: # # 每3分钟执行一次,handTime: 0 0/3 * * * ? 每天晚上2点 handTime: 0 0 2 * * ? # 指定几天内: day 1 表示当前天内,2表示二天内,依次类推 # 指定生成目录路劲: dir F:/agreeacc time: 0 0 2 * * ? day: 1 dir: F:/agreeacc3 java后端 * @Description

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

    目录 使用@Scheduled读取动态参数 1.基于@Scheduled可配置开发 2.基于代码实现 spring boot Scheduled动态配置 使用@Scheduled读取动态参数 1.基于@Scheduled可配置开发 application.propertites: read.timer.parmas=0 0/1 * * * * 定时类: @Component public class ScheduledService { Logger logger= LoggerFactory.

  • java读取properties配置文件的方法

    本文实例讲述了java读取properties配置文件的方法.分享给大家供大家参考.具体分析如下: 这两天做java项目,用到属性文件,到网上查资料,好半天也没有找到一个满意的方法能让我读取到.properties文件中属性值,很是郁闷,网上讲的获取属性值大概有以下方法,以下三种方法逐渐优化,以达到最好的效果以下都以date.properties文件为例,该文件放在src目录下,文件内容为: startdate=2011-02-07 totalweek=25 方法一: public class

  • java简单读取properties配置文件的方法示例

    本文实例讲述了java简单读取properties配置文件的方法.分享给大家供大家参考,具体如下: 读取配置文件,小结如下 import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; public class loadConf { private Properties prop = new Properties(); private void loadconf() t

  • Java读取properties配置文件时,出现中文乱码的解决方法

    如下所示: public static String getConfig(String key) { Properties pros = new Properties(); String value = ""; try { pros.load(new InputStreamReader(Object.class.getResourceAsStream("/properties.properties"), "UTF-8")); value = pr

  • 利用js读取动态网站从服务器端返回的数据

    在html中利用js读取动态网站从服务器端返回的数据进行显示 1.js.html 页面 需要引入 执行jquery的js文件 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator"

  • Android读取properties配置文件的实例详解

    Android读取properties配置文件的实例详解 因为一些配置信息,多处用到的.且以后可能变更的,我想写个.prorperties配置文件给管理起来. 我把配置文件放在了assets文件夹下 appConfig.properties: serverUrl=http://192.168.1.155 import java.io.InputStream; import java.util.Properties; import android.content.Context; /** * 读取

  • 详解Spring-boot中读取config配置文件的两种方式

    了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息. Spring-Boot读取配置文件的方式: 一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件applicati

  • Python读取properties配置文件操作示例

    本文实例讲述了Python读取properties配置文件操作.分享给大家供大家参考,具体如下: 工作需要将Java项目的逻辑改为python执行,Java的很多配置文件都是.properties的,文件内容的格式是"键.键.键...=值"的格式例如A.B.C=value1,D.F=value2等.并且"#"用来注视.python没有专门处理properties格式的包,只有处理标准的ini格式的包.所以需要自己写一个python程序来处理.不说了上程序. 这里参考

随机推荐