最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解SpringBoot開發(fā)案例之整合定時任務(Scheduled)

 更新時間:2017年07月21日 15:19:23   作者:小柒  
本篇文章主要介紹了詳解SpringBoot開發(fā)案例之整合定時任務(Scheduled),具有一定的參考價值,有興趣的可以了解一下

來來來小伙伴們,基于上篇的郵件服務,定時任務就不單獨分項目了,天然整合進了郵件服務中。

不知道,大家在工作之中,經(jīng)常會用到那些定時任務去執(zhí)行特定的業(yè)務,這里列舉一下我在工作中曾經(jīng)使用到的幾種實現(xiàn)。

任務介紹

  1. Java自帶的java.util.Timer類,這個類允許你調(diào)度一個java.util.TimerTask任務。Timer的優(yōu)點在于簡單易用;缺點是Timer的所有任務都是由同一個線程調(diào)度的,因此所有任務都是串行執(zhí)行的。同一時間只能有一個任務在執(zhí)行,前一個任務的延遲或異常都將會影響到之后的任務。這種實現(xiàn)已經(jīng)被項目所廢棄。
  2. 開源集群任務框架Quartz,這是一個功能比較強大的的調(diào)度器,適合做任務集群,解決單點故障,目前項目中在使用。
  3. Spring家族自帶的Scheduled,可以將它看成一個輕量級的Quartz,而且使用起來比Quartz簡單許多,適用于簡單的任務,微服務使用很方便。

項目應用

創(chuàng)建任務

代碼中,可以發(fā)現(xiàn),sendMail方法上注解被注釋掉了,目前我們采用的是xml配置實現(xiàn)的。

import org.springframework.stereotype.Component;
/**
 * 統(tǒng)計失敗郵件定時重新發(fā)送
 * 創(chuàng)建時間 2017年7月21日
 *
 */
@Component("sendMail")
public class SendMail {
 //@Scheduled(cron = "0/5 * * * * ?")
 public void sendMail() {
  System.out.println("統(tǒng)計失敗郵件定時重新發(fā)送開始");
 }
}

配置文件

 <!-- 配置任務線性池 -->
<task:executor id="executor" pool-size="5" /> 
<task:scheduler id="scheduler" pool-size="5"/>
<!-- 啟用注解驅(qū)動的定時任務 -->
<task:annotation-driven executor="executor" scheduler="scheduler" proxy-target-class="true"/>
<task:scheduled-tasks scheduler="scheduler">
  <!-- 統(tǒng)計失敗郵件定時重新發(fā)送 -->
  <task:scheduled ref="sendMail" method="sendMail" cron="0/5 * * * * ?"/> 
</task:scheduled-tasks>

啟動項目

/**
 * 啟動類
 * 創(chuàng)建時間 2017年7月19日
 *
 */
@EnableAutoConfiguration
@ComponentScan(basePackages={"com.itstyle.main"})
@ImportResource({"classpath:spring-context-dubbo.xml","classpath:spring-context-task.xml"})
public class Application {
 private static final Logger logger = Logger.getLogger(Application.class);
 public static void main(String[] args) throws InterruptedException {
  SpringApplication.run(Application.class, args);
  logger.info("項目啟動 ");
 }
}

啟動后,控制臺會每5s打印”統(tǒng)計失敗郵件定時重新發(fā)送開始”。當然Scheduled的功能不僅僅如此,我們查找源碼Scheduled類,可以發(fā)現(xiàn)還有一些注解屬性,這里就不一一為大家介紹了??傊B(yǎng)成查看源碼API的習慣。

@Target({ java.lang.annotation.ElementType.METHOD,
  java.lang.annotation.ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(Schedules.class)
public @interface Scheduled {
 public abstract String cron();
 public abstract String zone();
 public abstract long fixedDelay();
 public abstract String fixedDelayString();
 public abstract long fixedRate();
 public abstract String fixedRateString();
 public abstract long initialDelay();
 public abstract String initialDelayString();
}


項目:spring-boot-mail_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例

    Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例

    這篇文章主要介紹了Spring Gateway自定義請求參數(shù)封裝的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Swagger屏蔽某些接口顯示的操作

    Swagger屏蔽某些接口顯示的操作

    這篇文章主要介紹了Swagger屏蔽某些接口顯示的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java仿12306圖片驗證碼

    Java仿12306圖片驗證碼

    這篇文章主要為大家詳細介紹了Java仿12306的圖片驗證碼的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • idea中提示Class 'xxx' is never used的解決

    idea中提示Class 'xxx' is never us

    這篇文章主要介紹了idea中提示Class 'xxx' is never used的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java數(shù)據(jù)結(jié)構(gòu)之java實現(xiàn)棧

    java數(shù)據(jù)結(jié)構(gòu)之java實現(xiàn)棧

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)棧,需要的朋友可以參考下
    2014-03-03
  • Spring中的模塊與應用場景詳解

    Spring中的模塊與應用場景詳解

    這篇文章主要介紹了Spring中的模塊與應用場景詳解,Spring 框架可以為 Java 應用程序開發(fā)提供全面的基礎設施支持,它是現(xiàn)在非常流行的 Java 開源框架,對于一個 Java 開發(fā)人員來說,熟練掌握 Spring 是必不可少的,需要的朋友可以參考下
    2023-09-09
  • java解析xml文本的示例方法

    java解析xml文本的示例方法

    這篇文章主要為大家詳細介紹了java解析xml文本的相關(guān)方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)

    java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)

    這篇文章主要介紹了java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • JavaWeb中Servlet的深入理解

    JavaWeb中Servlet的深入理解

    Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數(shù)據(jù)庫或應用程序之間的中間層
    2021-10-10
  • Java System.currentTimeMillis()時間的單位轉(zhuǎn)換與計算方式案例詳解

    Java System.currentTimeMillis()時間的單位轉(zhuǎn)換與計算方式案例詳解

    這篇文章主要介紹了Java System.currentTimeMillis()時間的單位轉(zhuǎn)換與計算方式案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

沧源| 贵州省| 临澧县| 宁阳县| 湘阴县| 米易县| 乌恰县| 融水| 拉萨市| 观塘区| 安康市| 广河县| 西吉县| 武鸣县| 广宁县| 琼中| 新乡县| 达拉特旗| 巨鹿县| 周口市| 昌黎县| 色达县| 新沂市| 江安县| 赤城县| 巴彦淖尔市| 湘潭市| 龙陵县| 泰宁县| 兴仁县| 繁昌县| 新源县| 石河子市| 神池县| 右玉县| 英德市| 蒙自县| 上林县| 商洛市| 玉龙| 南京市|