>Java >java지도 시간 >SpringBoot가 Retry를 통합하여 오류 재시도를 구현하는 방법

SpringBoot가 Retry를 통합하여 오류 재시도를 구현하는 방법

PHPz
PHPz앞으로
2023-05-19 22:11:32995검색

    종속성 소개

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

    pom 값에 대한 완전한 종속성, 반복 가능 시도 중인 예외 유형입니다. 의미는 include와 동일합니다. 기본값은 비어 있습니다(제외도 비어 있으면 모든 예외가 재시도됩니다)

    include: 재시도 가능한 예외 유형. 기본값은 비어 있습니다(제외도 비어 있으면 모든 예외가 재시도됩니다)@EnableRetry

    exclude: 재시도할 필요가 없는 예외 유형입니다. 기본값은 비어 있습니다(포함도 비어 있으면 모든 예외가 재시도됩니다)

    • maxAttempts: 최대 재시도 횟수(첫 번째 실패 포함), 기본값은 3회입니다.

    • backoff: 재시도 대기 전략, 아래 @Backoff

    • recover에 도입됨: 재시도 횟수가 최대 재시도 횟수에 도달한 후 콜백 방법을 나타냅니다

    • @Backoff 주석

    • delay, 재시도 간 대기 시간(밀리초) )

    • maxDelay, 재시도 사이의 최대 대기 시간(밀리초 단위)

    multiplier, 지연 배수 지정

    • delayExpression, 재시도 사이의 대기 시간 표현

    • maxDelayExpression, 최대 대기 시간 재시도 사이의 표현식

    • multiplierExpression, 여러 지연 표현식 지정

    • 임의, 지연 시간

    • 사용 예

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.7.7</version>
              <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <groupId>com.example</groupId>
          <artifactId>demo</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <name>demo</name>
          <description>Demo project for Spring Boot</description>
          <properties>
              <java.version>1.8</java.version>
          </properties>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
              </dependency>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-devtools</artifactId>
                  <scope>runtime</scope>
                  <optional>true</optional>
              </dependency>
              <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
                  <optional>true</optional>
              </dependency>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-test</artifactId>
                  <scope>test</scope>
              </dependency>
              <!-- spring-retry -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-aop</artifactId>
              </dependency>
              <dependency>
                  <groupId>org.springframework.retry</groupId>
                  <artifactId>spring-retry</artifactId>
              </dependency>
          </dependencies>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                      <configuration>
                          <excludes>
                              <exclude>
                                  <groupId>org.projectlombok</groupId>
                                  <artifactId>lombok</artifactId>
                              </exclude>
                          </excludes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </project>

      Test
    • package com.example.demo;
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.retry.annotation.EnableRetry;
      @EnableRetry
      @SpringBootApplication
      public class Application {
          public static void main(String[] args) {
              SpringApplication.run(Application.class, args);
          }
      }
    • 출력 결과

    • 시간: 1
    • 시간: 2

      시간: 3

      errorHandler

    위 내용은 SpringBoot가 Retry를 통합하여 오류 재시도를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제