摘要:調(diào)度任務本指南將指導你完成使用調(diào)度任務的步驟。創(chuàng)建調(diào)度任務現(xiàn)在你已經(jīng)設(shè)置了項目,可以創(chuàng)建調(diào)度任務。還有其他選項,例如,它指定從完成任務計算的調(diào)用之間的間隔,你還可以使用表達式進行更復雜的任務調(diào)度。
調(diào)度任務
本指南將指導你完成使用Spring調(diào)度任務的步驟。
將要構(gòu)建什么你將構(gòu)建一個應用程序,使用Spring的@Scheduled注解每五秒打印一次當前時間。
需要什么大約15分鐘
最喜歡的文本編輯器或IDE
JDK 1.8或更高版本
Gradle 4+或Maven 3.2+
你還可以將代碼直接導入IDE:
Spring Tool Suite(STS)
IntelliJ IDEA
如何完成本指南請執(zhí)行以下操作:
下載并解壓縮本指南的源存儲庫,或使用Git克隆它:
git clone https://github.com/spring-guides/gs-scheduling-tasks.git
進入gs-scheduling-tasks/initial
完成后,你可以根據(jù)gs-scheduling-tasks/complete中的代碼檢查結(jié)果。
創(chuàng)建調(diào)度任務現(xiàn)在你已經(jīng)設(shè)置了項目,可以創(chuàng)建調(diào)度任務。
src/main/java/hello/ScheduledTasks.java
package hello; import java.text.SimpleDateFormat; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ScheduledTasks { private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { log.info("The time is now {}", dateFormat.format(new Date())); } }
Scheduled注解定義特定方法何時運行,注意:此示例使用fixedRate,它指定從每次調(diào)用的開始時間計算的方法調(diào)用之間的間隔。還有其他選項,例如fixedDelay,它指定從完成任務計算的調(diào)用之間的間隔,你還可以使用@Scheduled(cron=". . .")表達式進行更復雜的任務調(diào)度。
啟用調(diào)度雖然調(diào)度任務可以嵌入到Web應用程序和WAR文件中,但下面演示的更簡單的方法創(chuàng)建了一個獨立的應用程序,將所有內(nèi)容打包在一個可執(zhí)行的JAR文件中,由main()方法驅(qū)動。
src/main/java/hello/Application.java
package hello; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class); } }
@SpringBootApplication是一個方便的注解,添加了以下所有內(nèi)容:
@Configuration將類標記為應用程序上下文的bean定義源。
@EnableAutoConfiguration告訴Spring Boot根據(jù)類路徑設(shè)置、其他bean和各種屬性設(shè)置開始添加bean。
通常你會為Spring MVC應用添加@EnableWebMvc,但Spring Boot會在類路徑上看到spring-webmvc時自動添加它,這會將應用程序標記為Web應用程序并激活關(guān)鍵行為,例如設(shè)置DispatcherServlet。
@ComponentScan告訴Spring在hello包中查找其他組件、配置和服務,允許它找到控制器。
main()方法使用Spring Boot的SpringApplication.run()方法來啟動應用程序,你是否注意到?jīng)]有一行XML?也沒有web.xml文件,此Web應用程序是100%純Java,你無需處理配置任何管道或基礎(chǔ)結(jié)構(gòu)。
@EnableScheduling確保創(chuàng)建后臺任務執(zhí)行程序,沒有它,就沒有任何調(diào)度。
構(gòu)建可執(zhí)行的JAR你可以使用Gradle或Maven從命令行運行該應用程序,或者,你可以構(gòu)建一個包含所有必需依賴項、類和資源的可執(zhí)行JAR文件,并運行它,這使得在整個開發(fā)生命周期中、跨不同環(huán)境等將服務作為應用程序發(fā)布、版本和部署變得容易。
如果你使用的是Gradle,則可以使用./gradlew bootRun運行該應用程序,或者你可以使用./gradlew build構(gòu)建JAR文件,然后你可以運行JAR文件:
java -jar build/libs/gs-scheduling-tasks-0.1.0.jar
如果你使用的是Maven,則可以使用./mvnw spring-boot:run運行該應用程序,或者你可以使用./mvnw clean package構(gòu)建JAR文件,然后你可以運行JAR文件:
java -jar target/gs-scheduling-tasks-0.1.0.jar
上面的過程將創(chuàng)建一個可運行的JAR,你也可以選擇構(gòu)建經(jīng)典WAR文件。
顯示日志輸出,你可以從日志中看到它在后臺線程上,你應該看到你的調(diào)度任務每5秒出發(fā)一次:
[...] 2016-08-25 13:10:00.143 INFO 31565 --- [pool-1-thread-1] hello.ScheduledTasks : The time is now 13:10:00 2016-08-25 13:10:05.143 INFO 31565 --- [pool-1-thread-1] hello.ScheduledTasks : The time is now 13:10:05 2016-08-25 13:10:10.143 INFO 31565 --- [pool-1-thread-1] hello.ScheduledTasks : The time is now 13:10:10 2016-08-25 13:10:15.143 INFO 31565 --- [pool-1-thread-1] hello.ScheduledTasks : The time is now 13:10:15
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/73131.html
摘要:指南無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術(shù)。使用進行消息傳遞了解如何將用作消息代理。安全架構(gòu)的主題指南,這些位如何組合以及它們?nèi)绾闻c交互。使用的主題指南以及如何為應用程序創(chuàng)建容器鏡像。 Spring 指南 無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術(shù)。 入門指南 這些...
本文將告訴你如何使用spring的任務調(diào)度。主要使用@Scheduled注解 需要會使用maven 第一步 pom.xml配置 4.0.0 org.xxz scheduled-task-test 1.0 org.springframework.boot spring-boot-starter-parent ...
本文來自網(wǎng)絡(luò)一些博客的整理(包括gong1208的博客 dary1715的博客) 1、簡介 這個系列介紹Spring框架實現(xiàn)定時任務的兩種方式以及一些高級的用法,包括: 1、使用Quartz,這是一個功能比較強大的的調(diào)度器,可以讓你的程序在指定時間執(zhí)行,也可以按照某一個頻度執(zhí)行,配置起來稍顯復雜,稍后會詳細介紹。 2、Spring3.0以后自帶的task,可以將它看成一個輕量級的Quartz,而且...
摘要:一介紹在企業(yè)應用中,我們經(jīng)常會碰到時間任務調(diào)度的需求,比如每天凌晨生成前天報表,每小時生成一次匯總數(shù)據(jù)等等。三者關(guān)系簡單來說就是,調(diào)度器負責調(diào)度各個任務,到了某個時刻或者過了一定時間,觸發(fā)器觸動了,特定任務便啟動執(zhí)行。 一、Quartz介紹 在企業(yè)應用中,我們經(jīng)常會碰到時間任務調(diào)度的需求,比如每天凌晨生成前天報表,每小時生成一次匯總數(shù)據(jù)等等。Quartz是出了名的任務調(diào)度框架,它可...
摘要:產(chǎn)品概述產(chǎn)品概述產(chǎn)品概述本篇目錄產(chǎn)品特點產(chǎn)品特點功能簡介功能簡介操作指南操作指南開發(fā)指南開發(fā)指南任務調(diào)度任務調(diào)度產(chǎn)品價格產(chǎn)品價格簡稱,是推出的云上智能化輕量級的大數(shù)據(jù)基礎(chǔ)服務平臺,能夠幫您快速構(gòu)建起大數(shù)據(jù)的分析處理能力。 產(chǎn)品概述本篇目錄產(chǎn)品特點功能簡介操作指南開發(fā)指南任務調(diào)度產(chǎn)品價格UCloud Smart Data Platform(簡稱 USDP),是 UCloud 推出的云上智能化、...
閱讀 746·2023-04-26 01:30
閱讀 3301·2021-11-24 10:32
閱讀 2179·2021-11-22 14:56
閱讀 1979·2021-11-18 10:07
閱讀 553·2019-08-29 17:14
閱讀 624·2019-08-26 12:21
閱讀 3103·2019-08-26 10:55
閱讀 2940·2019-08-23 18:09