国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot項目中使用@Scheduled讀取動態參數

SpringBoot項目中使用@Scheduled讀取動態參數

2022-03-08 00:39郝少 Java教程

這篇文章主要介紹了SpringBoot項目中使用@Scheduled讀取動態參數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

使用@Scheduled讀取動態參數

1、基于@Scheduled可配置開發

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

定時類:

?
1
2
3
4
5
6
7
8
@Component
public class ScheduledService {
Logger logger= LoggerFactory.getLogger(ScheduledService.class);
    @Scheduled(cron = "${read.timer.parmas}")
    public void readConfigTable(){
        logger.info("*****.read.timer.parmas");
    }
}

啟動類:

?
1
2
3
4
5
6
7
@SpringBootApplication
@EnableScheduling  //必須
public class DataApplication {
  public static void main(String[] args) {
        SpringApplication.run(DataApplication.class,args);
    }
}

2、基于代碼實現

(1)核心代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@Component
@EnableScheduling
public 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)其他類或方法動態傳參賦值

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

spring boot Scheduled動態配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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;
    }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/hyj_king/article/details/98874541

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费av一区二区三区 | 黄色成人在线 | 在线午夜| 午夜精品久久久久久久久 | 视频二区在线观看 | 精品欧美乱码久久久久久1区2区 | 国产毛片在线看 | 欧洲av一区二区 | 色站综合 | 色视频www在线播放国产人成 | 人人爽人人爽人人片av | 欧美电影在线观看 | 私人毛片免费高清视频 | 国产欧美精品一区二区三区 | 亚洲在线观看免费视频 | 艹久久 | 国产精品成人一区二区三区 | 亚洲成av人影片在线观看 | 成人欧美一区二区三区在线观看 | 国产大学生援交视频在线观看 | 日韩欧美在线观看 | 中文字幕av一区二区三区 | 国产毛片av | 在线视频国产一区 | 爱爱免费视频 | 亚洲欧美综合精品久久成人 | 日本激情免费 | 国产综合在线视频 | 亚洲区视频 | 亚洲欧美激情精品一区二区 | 人人超碰97| 91影院| 欧美日本在线观看 | 成人免费视频在线观看 | 超碰天天 | 国产精品99久久久久久动医院 | 男人天堂av网| 亚洲综合区| 久久久国产一区 | 国产精品一区二区在线观看 | 成人高清在线视频 |