首页 > 其他分享 >【Spring-boot-route(十九)Spring-boot-admin监控服务+(二十)spring-boot-route(二十)Spring Task实现简单定时任务】

【Spring-boot-route(十九)Spring-boot-admin监控服务+(二十)spring-boot-route(二十)Spring Task实现简单定时任务】

时间:2023-02-15 10:31:32浏览次数:59  
标签:admin Spring route boot 任务 spring 定时

​SpringBootAdmin​​​不是Spring官方提供的模块,它包含了​​Client​​​和​​Server​​两部分。server部分提供了用户管理界面,client即为被监控的服务。client需要注册到server端。

SpringBootAdmin提供了很少的几个监控服务端点,需要依赖SpringBootActuator丰富监控功能。


server端配置

server端的配置很简单,无需任何开发。

第一步:引入依赖


<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.3.0</version>
</dependency>


第二步:在启动类上增加@EnableAdminServer注解,开启对spring-boot-admin的支持。


@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminApplication.class, args);
}
}

做好以上配置,然后访问​​​​IP:PORT效果如下:

【Spring-boot-route(十九)Spring-boot-admin监控服务+(二十)spring-boot-route(二十)Spring Task实现简单定时任务】_定时任务

目前还没有客户端注册到服务端,所以看不到任何监控的内容,接下来我们创建一个客户端并且注册到服务端后再来看看效果。


Client端配置

这里使用上一章的演示项目——spring-boot-actuator做为客户端。

第一步:引入依赖


<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.3.0</version>
</dependency>

第二部:将客户端注册到服务器端,


spring:
boot:
admin:
client:
# 服务端地址
url: http://localhost:7019

效果如下:

【Spring-boot-route(十九)Spring-boot-admin监控服务+(二十)spring-boot-route(二十)Spring Task实现简单定时任务】_定时任务_02

为了监控更多的状态信息,我们在客户端引入​​spring-boot-actuator​​依赖。


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

由于actuator默认只开启了health和info两个web端口,如果想要在server端页面看到所有的监控信息,需要开启其他接口的web端口。


management:
endpoints:
web:
exposure:
include: "*"


现在的效果如下:

【Spring-boot-route(十九)Spring-boot-admin监控服务+(二十)spring-boot-route(二十)Spring Task实现简单定时任务】_定时任务_03


spring-boot-admin的应用就简单介绍完了。spring-boot-admin配合spring-boot-actuator实现多服务监控,不仅能提供查看服务监控信息的ui,而且可以监控更加全面的内容。


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

接下来讲解:

spring-boot-route(二十)Spring Task实现简单定时任务


Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用。


一 如何实现定时任务


1. 开启定时任务

在启动类上增加​​@EnableScheduling​​注解,开启定时任务


2. 定时任务方法

使用​​@Scheduled​​注解的方法就会被声明成一个定时任务


@Slf4j
@Component
public class ScheduledTest {

@Scheduled(cron = "*/1 * * * * ?")
public void test1(){
log.info("这个定时任务1----");
}
@Scheduled(cron = "*/1 * * * * ?")
public void test2(){
log.info("这个定时任务2----");
}
@Scheduled(cron = "*/1 * * * * ?")
public void test3(){
log.info("这个定时任务3----");
}
}

3. 注册bean

使用​​@Component​​将这个定时任务类注册成一个bean组件,交给Spring容器管理。


二 cron表达式详解

在spring 4.x中已经不支持7个参数的cronin表达式了,要求必须是6个参数。cron表达式格式如下:


{秒} {分} {时} {日期(具体哪天)} {月} {星期}


  • 秒:必填项,允许的值范围是0-59,支持的特殊符号包括, - * /,表示特定的某一秒才会触发任务,-表示一段时间内会触发任务,*表示每一秒都会触发,/表示从哪一个时刻开始,每隔多长时间触发一次任务。
  • 分:必填项,允许的值范围是0-59,支持的特殊符号和秒一样,含义类推
  • 时:必填项,允许的值范围是0-23,支持的特殊符号和秒一样,含义类推
  • 日期:必填项,允许的值范围是1-31,支持的特殊符号相比秒多了?,表示与{星期}互斥,即意味着若明确指定{星期}触发,则表示{日期}无意义,以免引起冲突和混乱。
  • 月:必填项,允许的值范围是1-12(JAN-DEC),支持的特殊符号与秒一样,含义类推
  • 星期:必填项,允许值范围是1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此类推,7代表星期六,支持的符号相比秒多了?,表达的含义是与{日期}互斥,即意味着若明确指定{日期}触发,则表示{星期}无意义。


标签:admin,Spring,route,boot,任务,spring,定时
From: https://blog.51cto.com/u_15874356/6058449

相关文章

  • 【工具使用】IDEA Spring源码报Unable to find method ‘org.gradle.api.artifacts.re
    1 前言IDEA拉Spring源码,源码是Gradle管理依赖的,但是报错Unabletofindmethod'org.gradle.api.artifacts.result.ComponentSelectionReas我的IDEA有2019、2021的2 ......
  • Java报错:Failed to start bean ‘documentationPluginsBootstrapper‘
    场景描述SpringBoot引入knife4j+Swagger报错Failedtostartbean'documentationPluginsBootstrapper'引入版本<parent> <groupId>org.springframework.boot</grou......
  • Java:SpringBoot整合Knife4j(Swagger)提供接口文档
    spring-boot版本2.7.71、引入Maven坐标pom.xml<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId>......
  • SpringBoot常用注解大全
    常用注解概览这里整理了一张SpringBoot常用注解的思维导图,本文主要讲解这些注解的用法。 组件相关注解@ComponentScan默认扫描当前包及其子包下面被@component,@Cont......
  • spring-注解开发
    一.注解实现自动装配jdk1.5开始支持注解,spring2.5开始支持注解!要使用注解须知:1.导入约束xmlns:context="http://www.springframework.org/schema/context"http://......
  • SpringFramework学习日记
    初识Spring,Spring的系统架构1、Spring全家桶是一个很nb的生态,我们可以用他开发自己想要的格式的功能CoreContainer是Spring的容器,java的对象交给Spring的容器来管理AO......
  • SpringMVC源码(六):Handler处理器
    在MVC请求流程中,Handler处理器依赖于HandlerMapping组件。因此在处理客户端请求时,会优先获取HandlerMapping处理器。HandlerMapping组件主要作用是根据客户端的访......
  • 基于JAVA+SpringBoot+VUE的心理健康测试系统的设计与实现
    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战......
  • Spring+MyBatis声明事务
    一、原则在之前的开发中,事务代码都是分布在业务代码中,难以重用,调整麻烦。所以,Spring提供了声明事务,将事务代码和业务代码分离,再使用AOP实现,事务代码全部在配置文件中完成。......
  • Vue中使用this.$router.resolve打开新页面
    方法一:resolve会返回一个跳转路由对象if(id&&orgCode){lettext=this.$router.resolve({path:path,query:{......