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

技术SpringBoot项目中怎么使用@Scheduled读取动态参数本篇内容主要讲解“SpringBoot项目中怎么使用@Scheduled读取动态参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。

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

使用@Scheduled读取动态参数

1、基于@Scheduled可配置开发

应用程序。属性:

read.timer.parmas=00/1****定时类:

@组件

publicclassScheduledService{

记录器记录器=记录器工厂。getlogger(计划服务。类);

@ Scheduled(cron=' $ { read。计时器。帕尔马斯} ')

publicatavitreadconfigtable(){ 0

伐木工。信息(' * * * * *。阅读。计时器。帕尔马斯';

}

}启动类:

@回弹应用

@EnableScheduling//必须

publicclassDataApplication{

publicationstativitmain(String[]args){ 0

spring APPLication。运行(数据应用程序。类,args);

}

}

2、基于代码实现

(1)核心代码

@组件

@EnableScheduling

公共类testscheduledparamsimplementscheduling configurer {

记录器记录器=记录器工厂。getlogger(testscheduledparams。类);

publicationstatistingdefault _ COON=' 0/3 * * * * * ';

//##动态传参要给默认值。

publicationstatisticstringcorn=DEFAULT _ COON;

@覆盖

public void configuretasks(scheduledtasksregistrator ){ 0

任务注册者。addtriggertask(NewRunnable(){ 0

@覆盖

公共void run(){ 0

//

 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
@Log4j2
public 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读取动态参数”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/61863.html

(0)

相关推荐

  • 小雪诗句,描写小雪节气古诗词有哪些

    技术小雪诗句,描写小雪节气古诗词有哪些初寒 (作者小雪诗句:陆游) 久雨重阳後,清寒小雪前。 拾薪椎髻仆,卖菜掘头船。 薄米全家粥,空床故物毡。 身犹付一歃,名字更须传? 小雪日戏题绝句 (作者:张登) 甲子徒推小雪天,

    生活 2021年10月28日
  • 祛蝇妙招,小窍门:驱赶苍蝇的最佳方法

    技术祛蝇妙招,小窍门:驱赶苍蝇的最佳方法1.风油精,相信现在很多人家里都有风油精,确实它是驱除苍蝇非常不错的帮手,只需要把风油精的瓶盖拧开,放在房间里面的角落里,这样就能轻松驱除苍蝇,不过位置最好不要放得太低,以免孩子可

    生活 2021年10月31日
  • python如何爬取都挺好影视评论

    技术python如何爬取都挺好影视评论本篇文章给大家分享的是有关python如何爬取都挺好影视评论,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言最近《都

    攻略 2021年10月25日
  • css如何做直角梯形

    技术css如何做直角梯形本篇内容主要讲解“css如何做直角梯形”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css如何做直角梯形”吧! 在css中

    攻略 2021年12月4日
  • ORACLE中出现ORA-28365错误怎么办

    技术ORACLE中出现ORA-28365错误怎么办这篇文章主要为大家展示了“ORACLE中出现ORA-28365错误怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ORA

    攻略 2021年11月20日
  • PostgreSQL中ExecModifyTable函数的实现逻辑是什么

    技术PostgreSQL中ExecModifyTable函数的实现逻辑是什么这篇文章主要讲解了“PostgreSQL中ExecModifyTable函数的实现逻辑是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大

    攻略 2021年11月11日