1. 程式人生 > >Spring系列學習之Spring Cloud Task微服務上下文執行任務

Spring系列學習之Spring Cloud Task微服務上下文執行任務

英文原文:https://spring.io/projects/spring-cloud-task

目錄

概述

快速開始

學習

文件

示例

@EnableTask註解


概述

Spring Cloud Task允許使用者使用Spring Cloud開發和執行短期微服務,並在雲和本地執行,甚至在Spring Cloud Data Flow上執行。 只需新增@EnableTask並將您的應用程式作為Spring Boot應用程式(單個應用程式上下文)執行。 如果您不熟悉Spring Cloud Task,請檢視我們的入門文件

快速開始

使用Spring Initializr

引導您的應用程式。

學習

文件

每個Spring專案都有自己的; 它詳細解釋瞭如何使用專案功能以及使用它們可以實現的功能。

2.0.0 CURRENT GA Reference Doc. API Doc.
2.1.0 M2 PRE Reference Doc. API Doc.
1.3.1 GA Reference Doc. API Doc.
1.3.0 GA Reference Doc. API Doc.
1.2.3 GA Reference Doc. API Doc.
1.2.2 GA Reference Doc. API Doc.
1.1.2 GA Reference Doc. API Doc.

示例

要完成我們的應用程式,我們需要建立一個Java檔案。 預設情況下,Maven從src / main / java編譯原始碼,因此您需要建立該資料夾結構。 然後,您需要新增名為src / main / java / com / example / SampleTask.java的檔案,如以下示例所示:

package com.example;

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.task.configuration.EnableTask;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@EnableTask
public class SampleTask {

	@Bean
	public CommandLineRunner commandLineRunner() {
		return new HelloWorldCommandLineRunner();
	}

	public static void main(String[] args) {
		SpringApplication.run(SampleTask.class, args);
	}

	public static class HelloWorldCommandLineRunner implements CommandLineRunner {

		@Override
		public void run(String... strings) throws Exception {
			System.out.println("Hello, World!");
		}
	}
}

雖然它可能看起來很小,但仍有相當多的事情發生。 有關Spring Boot細節的更多資訊,請參閱Spring Boot參考文件

我們還需要在src / main / resources中建立一個application.properties檔案。 我們需要在application.properties中配置兩個屬性:我們需要設定應用程式名稱(轉換為任務名稱),我們需要將Spring Cloud Task的日誌記錄設定為DEBUG,以便我們可以看到正在發生的事情。 以下示例顯示瞭如何執行這兩個操作:

logging.level.org.springframework.cloud.task=DEBUG
spring.application.name=helloWorld

@EnableTask註解

我們示例中的第一個非引導註釋是@EnableTask註解。這個類級別的註釋告訴Spring Cloud Task引導它的功能。預設情況下,它會匯入其他配置類(SimpleTaskConfiguration)。此附加配置註冊TaskRepository及其使用的基礎結構。

開箱即用,TaskRepository使用記憶體對映來記錄任務的結果。對於生產環境而言,Map不是實用的解決方案,因為一旦任務結束,Map就會消失。但是,為了快速入門體驗,我們將此作為預設使用,並在日誌中回顯該儲存庫中正在更新的內容。在第8章“配置”部分(本文件後面)中,我們將介紹如何自定義Spring Cloud Task提供的部分的配置。

當我們的示例應用程式執行時,Spring Boot啟動我們的HelloWorldCommandLineRunner並輸出我們的“Hello,World!”訊息到標準輸出。 TaskLifecyceListener在儲存庫中記錄任務的開始和任務的結束。