摘要:在中也可以看到執行記錄,包括錯誤信息解讀生命周期在任務開始之前即在初始化之后執行任何或實現之前創建一個記錄記錄開始事件的條目,此事件由觸發,來向系統指出所有都可以使用。在加載完成所有的之后,任務執行并更新數據庫中的執行結果和狀態,最后退出。
起步:什么是 spring cloud task
Spring Cloud Task makes it easy to create short lived microservices. We provide capabilities that allow short lived JVM processes to be executed on demand in a production environment.
Spring Cloud Task 是為了實現短生命周期的、定時執行的、不需要被重新啟動的輕量級應用架構。
創建 Demodemo 已發布 https://github.com/Theembers/... 可以下載參考
1.首先需要創建一個 springBoot 項目
2.除此以外需要加入數據庫依賴,Spring Cloud Task 支持主流數據庫(H2、HSQLDB、MySql、Oracle、Postgres)我們以mysql為例
org.springframework.boot spring-boot-starter-data-jpa 1.5.7.RELEASE mysql mysql-connector-java
3.引入task依賴
org.springframework.cloud spring-cloud-task-core 1.0.0.BUILD-SNAPSHOT
4.在application.properties中配置數據庫信息
#DB Configuration: spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/testdb spring.datasource.username = root spring.datasource.password = root #JPA Configuration: spring.jpa.database=MySQL spring.jpa.show-sql=true spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update #spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy #spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MYSQL5Dialect
5.編寫你的Application
@SpringBootApplication @EnableTask public class SpringCloudTaskApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudTaskApplication.class, args); } @Bean public CommandLineRunner commandLineRunner() { return new TestCommandLineRunner(); } public static class TestCommandLineRunner implements CommandLineRunner { @Override public void run(String... strings) throws Exception { System.out.println("this is a Test about spring cloud task."); try{ Listlist = new ArrayList<>(); list.get(1); }catch (Exception e){ System.out.println("Error"); throw e; } } } }
注意: 以上代碼中通過異常的形式故意通過list.get(1)拋出,便于在數據庫中可以看到一些數據產生。
6.現在可以通過運行main方法啟動你的demo,以下是控制臺輸出:
. ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.7.RELEASE) 2017-09-25 17:02:43.349 INFO 11592 --- [ main] c.x.s.SpringCloudTaskApplication : Starting SpringCloudTaskApplication on XinLing with PID 11592 (D:workspacesJavaspring-cloud-task argetclasses started by theem in D:workspacesJavaspring-cloud-task) 2017-09-25 17:02:43.351 INFO 11592 --- [ main] c.x.s.SpringCloudTaskApplication : No active profile set, falling back to default profiles: default 2017-09-25 17:02:43.383 INFO 11592 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@11c20519: startup date [Mon Sep 25 17:02:43 CST 2017]; root of context hierarchy 2017-09-25 17:02:43.938 INFO 11592 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit "default" 2017-09-25 17:02:43.947 INFO 11592 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ name: default ...] 2017-09-25 17:02:43.988 INFO 11592 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.0.12.Final} 2017-09-25 17:02:43.989 INFO 11592 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2017-09-25 17:02:43.989 INFO 11592 --- [ main] org.hibernate.cfg.Environment : HHH000021: Bytecode provider name : javassist 2017-09-25 17:02:44.016 INFO 11592 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final} Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. Mon Sep 25 17:02:44 CST 2017 WARN: Establishing SSL connection without server"s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn"t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to "false". You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 2017-09-25 17:02:44.307 INFO 11592 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect 2017-09-25 17:02:44.406 INFO 11592 --- [ main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000228: Running hbm2ddl schema update 2017-09-25 17:02:44.422 INFO 11592 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit "default" 2017-09-25 17:02:44.514 INFO 11592 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from class path resource [org/springframework/cloud/task/schema-mysql.sql] 2017-09-25 17:02:44.532 INFO 11592 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from class path resource [org/springframework/cloud/task/schema-mysql.sql] in 17 ms. 2017-09-25 17:02:44.636 INFO 11592 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2017-09-25 17:02:44.640 INFO 11592 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 this is a Test about spring cloud task. Error 2017-09-25 17:02:44.675 INFO 11592 --- [ main] utoConfigurationReportLoggingInitializer : Error starting ApplicationContext. To display the auto-configuration report re-run your application with "debug" enabled. 2017-09-25 17:02:44.687 INFO 11592 --- [ main] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@11c20519: startup date [Mon Sep 25 17:02:43 CST 2017]; root of context hierarchy 2017-09-25 17:02:44.688 INFO 11592 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 0 2017-09-25 17:02:44.689 INFO 11592 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown 2017-09-25 17:02:44.689 INFO 11592 --- [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit "default" 2017-09-25 17:02:44.698 ERROR 11592 --- [ main] o.s.boot.SpringApplication : Application startup failed java.lang.IllegalStateException: Failed to execute CommandLineRunner at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:735) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:716) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:703) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] at com.xz.springCoudTask.SpringCloudTaskApplication.main(SpringCloudTaskApplication.java:17) [classes/:na] Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:653) ~[na:1.8.0_91] at java.util.ArrayList.get(ArrayList.java:429) ~[na:1.8.0_91] at com.xz.springCoudTask.SpringCloudTaskApplication$TestCommandLineRunner.run(SpringCloudTaskApplication.java:31) ~[classes/:na] at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:732) [spring-boot-1.5.7.RELEASE.jar:1.5.7.RELEASE] ... 6 common frames omitted Process finished with exit code 1
7.以下表會在第一次成功執行后創建。
在task_execution中也可以看到執行記錄,包括錯誤信息
1.在任務開始之前(即在spring初始化之后執行任何CommandLineRunner或ApplicationRunner實現之前)TaskRepository創建一個記錄記錄開始事件的條目,此事件SmartLifecycle#start由Spring Framework觸發,來向系統指出所有bean都可以使用。
The recording of a task will only occur upon the successful bootstrapping of an ApplicationContext. If the context fails to bootstrap at all, the task’s execution will not be recorded.
任務的記錄只有當bean可以成功加載時才會被記錄,如果失敗則不會被記錄。
2.在Spring Boot加載完成所有的bean之后,任務執行并更新數據庫中的執行結果和狀態,最后退出。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70569.html
摘要:負載均衡組件是一個負載均衡組件,它通常和配合使用。和配合,很容易做到負載均衡,將請求根據負載均衡策略分配到不同的服務實例中。和配合,在消費服務時能夠做到負載均衡。在默認的情況下,和相結合,能夠做到負載均衡智能路由。 2.2.1 簡介 Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 團隊提供的全新 Web 框架, 它主要的特點...
摘要:必須要從零開始用搭建一下這個框架,本文是采用作為服務注冊與發現的組件。是一個默認的注冊中心地址。配置該選項后,可以在服務中心進行注冊。配置完成之后,啟動項目,然后瀏覽器地址欄輸入然后出現以下頁面,表示注冊中心搭建完畢。 發現很多招聘都需要會springcloud,所以最近在學習springcloud。 必須要從零開始用IDEA搭建一下這個springcloud框架,本文是采用Eurek...
摘要:今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
摘要:今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 今天整理了一下近大半年以來的一些文章,和我的預期一樣,很多文章我都忘記自己曾經寫過了,這個記錄的過程讓我也有了新的理解。希望大家,收藏,點贊,加轉發。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
摘要:不過,我們搭建好框架就是為了消費它使用它,那么這篇文章就來看看如何去消費使用我們之前搭建起來的服務吧首先本文是基于上一篇文章進行的。代碼如下啟動程序,多次訪問,瀏覽器顯示內容為至此我們這個服務消費的框架就搭建完畢了。。。 上一篇文章主要介紹了如何搭建一個簡單的springcloud框架。不過,我們搭建好框架就是為了消費它使用它,那么這篇文章就來看看如何去消費使用我們之前搭建起來的服務吧...
閱讀 1905·2021-11-25 09:43
閱讀 1405·2021-11-22 14:56
閱讀 3280·2021-11-22 09:34
閱讀 2010·2021-11-15 11:37
閱讀 2256·2021-09-01 10:46
閱讀 1396·2019-08-30 15:44
閱讀 2294·2019-08-30 13:15
閱讀 2393·2019-08-29 13:07