springboot定時任務2

springboot定時任務@Scheduled 

    定時任務一般是項目中都需要用到的,可以用於定時處理一些特殊的任務。

在spirngboot中使用定時任務變的特別簡單,只需要在啓動類上增加一個@EnableScheduling註解即可。默認情況下,如果什麼都不進行配置,就會導致一個問題,系統中所有的定時任務都是使用的一個線程去執行的,也就是說,如果如果同一個時刻有2個定時任務需要執行,那麼只可能有一個定時任務在執行,如果要解決這個問題可以定義一個自定的任務調度線程池即可。

解決方案:

上面這個圖是從 org.springframework.scheduling.annotation.EnableScheduling 這個註解類上的解釋上截出來的。大致上就是我們定義一個 TaskScheduler 類型的bean即可解決這個問題。

 

實現功能:

   啓動3個定時任務,每隔1s打印出一句話,觀看是同一個線程打印的還是不同的線程打印的。

實現功能

  1、在啓動類上增加@EnableScheduling註解

  2、配置一個類型爲 TaskScheduler類型的bean (可以將這個類型的bean刪除,看程序輸出的結果)

  3、編寫一個任務類,每隔1s輸出內容

 

一、pom文件的內容

Java代碼 

 收藏代碼

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  4.     <modelVersion>4.0.0</modelVersion>  
  5.   
  6.     <groupId>com.huan</groupId>  
  7.     <artifactId>springboot-task</artifactId>  
  8.     <version>0.0.1-SNAPSHOT</version>  
  9.     <packaging>jar</packaging>  
  10.   
  11.     <name>springboot-task</name>  
  12.     <description>spring boot整合定時任務+</description>  
  13.   
  14.     <parent>  
  15.         <groupId>org.springframework.boot</groupId>  
  16.         <artifactId>spring-boot-starter-parent</artifactId>  
  17.         <version>1.5.8.RELEASE</version>  
  18.         <relativePath/> <!-- lookup parent from repository -->  
  19.     </parent>  
  20.   
  21.     <properties>  
  22.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  23.         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  24.         <java.version>1.8</java.version>  
  25.     </properties>  
  26.   
  27.     <dependencies>  
  28.         <dependency>  
  29.             <groupId>org.springframework.boot</groupId>  
  30.             <artifactId>spring-boot-starter-web</artifactId>  
  31.         </dependency>  
  32.   
  33.         <dependency>  
  34.             <groupId>org.springframework.boot</groupId>  
  35.             <artifactId>spring-boot-starter-test</artifactId>  
  36.             <scope>test</scope>  
  37.         </dependency>  
  38.     </dependencies>  
  39.   
  40.     <build>  
  41.         <plugins>  
  42.             <plugin>  
  43.                 <groupId>org.springframework.boot</groupId>  
  44.                 <artifactId>spring-boot-maven-plugin</artifactId>  
  45.             </plugin>  
  46.         </plugins>  
  47.     </build>  
  48.   
  49.   
  50. </project>  

 二、編寫啓動類

 三、編寫任務類

 四、執行結果

 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章