亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring Boot實現(xiàn)動態(tài)更新任務(wù)的方法

 更新時間:2017年04月28日 11:48:38   作者:huanxi  
這篇文章主要介紹了Spring Boot實現(xiàn)動態(tài)更新任務(wù)的方法,文中給出了詳細的示例代碼供大家參考學(xué)習(xí),對大家學(xué)習(xí)使用Spring Boot動態(tài)更新任務(wù)具有一定的參考價值,需要的朋友們來一起看看吧。

前言

SpringBoot 實現(xiàn)動態(tài) Job,可以通過 API 動態(tài)變更 cron。

原生的 Job 實現(xiàn)起來很簡單,只要用注解 @Scheduled(cron=xxxxxx) 來實現(xiàn)就可以了,但是要實現(xiàn)動態(tài)更改 cron ,就需要做點其他的了。

實現(xiàn)方法

在 pom.xml 中添加 quartz-scheduler

<dependency>
 <groupId>org.quartz-scheduler</groupId>
 <artifactId>quartz</artifactId>
 <version>2.2.3</version>
</dependency>

在 application.yml 中增加 cron ,默認一秒鐘執(zhí)行一次

cron:
 pattern: 0/1 * * * * ?

創(chuàng)建 DynamicScheduledTask.java

public class DynamicScheduledTask implements SchedulingConfigurer {
 @Value("${cron.pattern}")
 public String pattern;
 public void setCron(String cron) {
 this.pattern = cron;
 }
 @Override
 public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
 taskRegistrar.addTriggerTask(new Runnable() {
  @Override
  public void run() {
  doBiz();
  }
 }, new Trigger() {
  @Override
  public Date nextExecutionTime(TriggerContext triggerContext) {
  // 定時任務(wù)觸發(fā),可修改定時任務(wù)的執(zhí)行周期
  CronTrigger trigger = new CronTrigger(pattern);
  Date nextExecDate = trigger.nextExecutionTime(triggerContext);
  return nextExecDate;
  }
 });
 }
 public void doBiz() {
 // do your biz
 System.out.println("do biz...");
 }
}

在 Application.java 中增加 @EnableScheduling 注解

這樣,運行 Application.java 就會每隔一秒執(zhí)行 Job 了。

如果要實現(xiàn)特定的邏輯,可以繼承 DynamicScheduledTask.java,重寫 doBiz() 方法。

UserDynamicJob.java

@Component
public class UserDynamicJob extends DynamicScheduledTask {
 @Autowired
 IUserService userService;
 @Override
 public void doBiz() {
 Map<String, Object> params = new HashMap<>();
 try {
  User user = userService.selectOne(params);
  System.out.println(user);
 } catch (DataNotFoundException e) {
  e.printStackTrace();
 }
 }
}

寫到這里,其實還沒有實現(xiàn)動態(tài)更改 cron 表達式。

接下來我們可以通過 api 來動態(tài)更改。

在我們的 Controller 中,增加一個方法

@PostMapping(value = "/cron")
 public String changeDynamicCron(String cron) {
 userDynamicJob.setCron(cron);
 return "Success";
 }

這樣,通過調(diào)用 localhost:8080/corn?corn=0/10 * * * * ?

就可以實現(xiàn)每 10 秒執(zhí)行一次了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java8 CompletableFuture詳解

    Java8 CompletableFuture詳解

    這篇文章主要介紹了Java8 CompletableFuture詳解,CompletableFuture extends Future提供了方法,一元操作符和促進異步性以及事件驅(qū)動編程模型,需要的朋友可以參考下
    2014-06-06
  • 基于Java中的數(shù)值和集合詳解

    基于Java中的數(shù)值和集合詳解

    下面小編就為大家?guī)硪黄贘ava中的數(shù)值和集合詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 詳解Java打包及上傳到私服務(wù)的方法

    詳解Java打包及上傳到私服務(wù)的方法

    這篇文章主要介紹了Java打包及上傳到私服務(wù)的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Java如何讀取XML文件 具體實現(xiàn)

    Java如何讀取XML文件 具體實現(xiàn)

    這篇文章主要介紹了Java如何讀取XML文件 具體實現(xiàn),有需要的朋友可以參考一下
    2013-12-12
  • Spring?Security自定義失敗處理器問題

    Spring?Security自定義失敗處理器問題

    這篇文章主要介紹了Spring?Security自定義失敗處理器問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java通過SSLEngine與NIO實現(xiàn)HTTPS訪問的操作方法

    Java通過SSLEngine與NIO實現(xiàn)HTTPS訪問的操作方法

    這篇文章主要介紹了Java通過SSLEngine與NIO實現(xiàn)HTTPS訪問,需要在Connect操作、Connected操作、Read和Write操作中加入SSL相關(guān)的處理即可,需要的朋友可以參考下
    2021-08-08
  • Elasticsearch Join字段類型簡單快速上手教程

    Elasticsearch Join字段類型簡單快速上手教程

    這篇文章主要為大家介紹了Elasticsearch Join字段類型簡單快速上手教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • MyBatisPlus 主鍵策略的實現(xiàn)(4種)

    MyBatisPlus 主鍵策略的實現(xiàn)(4種)

    MyBatis Plus 集成了多種主鍵策略,幫助用戶快速生成主鍵,本文主要介紹了MyBatisPlus主鍵策略的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Springboot中的@Order如何使用

    Springboot中的@Order如何使用

    本文主要介紹了Springboot中的@Order如何使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java中stream是什么及如何使用

    Java中stream是什么及如何使用

    在Java中,Stream(流)是一種用于操作集合(Collection)、數(shù)組等數(shù)據(jù)源的API,Stream的主要作用是進行數(shù)據(jù)的轉(zhuǎn)換、篩選、聚合等操作,可以極大地簡化對數(shù)據(jù)的處理,本文給大家介紹Java中stream是什么?有什么作用?如何使用?感興趣的朋友一起看看吧
    2023-10-10

最新評論