package com.xly.milvus.config; import io.milvus.v2.client.RetryConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MilvusRetryConfig { @Value("${milvus.retry.max-retry-times:75}") private int maxRetryTimes; @Value("${milvus.retry.initial-backoff-ms:10}") private long initialBackOffMs; @Value("${milvus.retry.max-backoff-ms:3000}") private long maxBackOffMs; @Value("${milvus.retry.backoff-multiplier:3}") private int backOffMultiplier; @Value("${milvus.retry.retry-on-rate-limit:true}") private boolean retryOnRateLimit; @Value("${milvus.retry.max-retry-timeout-ms:0}") private long maxRetryTimeoutMs; @Value("${milvus.retry.enabled:true}") private boolean retryEnabled; /** * 方法名改为 createRetryConfig,避免与类名冲突 */ @Bean public RetryConfig createRetryConfig() { if (!retryEnabled) { return RetryConfig.builder() .maxRetryTimes(1) .initialBackOffMs(0) .maxBackOffMs(0) .backOffMultiplier(1) .retryOnRateLimit(false) .maxRetryTimeoutMs(0) .build(); } return RetryConfig.builder() .maxRetryTimes(maxRetryTimes) .initialBackOffMs(initialBackOffMs) .maxBackOffMs(maxBackOffMs) .backOffMultiplier(backOffMultiplier) .retryOnRateLimit(retryOnRateLimit) .maxRetryTimeoutMs(maxRetryTimeoutMs) .build(); } }