mirror of
https://github.com/signalapp/Signal-Server
synced 2026-10-06 07:17:48 +01:00
Make timeout for storage usage queries configurable
This commit is contained in:
1 parent
4e2bca886e
commit
f6ca5e55a5
3 files changed
+12
-1
No files matched your search
+3
@@ -42,6 +42,7 @@ public class Cdn3RemoteStorageManager implements RemoteStorageManager {
|
||||
private final String clientId;
|
||||
private final String clientSecret;
|
||||
private final Map<Integer, String> sourceSchemes;
|
||||
private final Duration usageRequestTimeout;
|
||||
|
||||
static final String CLIENT_ID_HEADER = "CF-Access-Client-Id";
|
||||
static final String CLIENT_SECRET_HEADER = "CF-Access-Client-Secret";
|
||||
@@ -75,6 +76,7 @@ public class Cdn3RemoteStorageManager implements RemoteStorageManager {
|
||||
.withNumClients(configuration.numHttpClients())
|
||||
.build();
|
||||
this.sourceSchemes = configuration.sourceSchemes();
|
||||
this.usageRequestTimeout = configuration.usageRequestTimeout();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -231,6 +233,7 @@ public class Cdn3RemoteStorageManager implements RemoteStorageManager {
|
||||
HttpUtils.queryParamString(Map.of("prefix", prefix).entrySet()))))
|
||||
.header(CLIENT_ID_HEADER, clientId)
|
||||
.header(CLIENT_SECRET_HEADER, clientSecret)
|
||||
.timeout(usageRequestTimeout)
|
||||
.build();
|
||||
return this.storageManagerHttpClient.sendAsync(request, HttpResponse.BodyHandlers.ofInputStream())
|
||||
.thenApply(response -> {
|
||||
|
||||
+8
-1
@@ -2,6 +2,7 @@ package org.whispersystems.textsecuregcm.configuration;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.Duration;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import org.whispersystems.textsecuregcm.configuration.secrets.SecretString;
|
||||
@@ -21,6 +22,8 @@ import javax.annotation.Nullable;
|
||||
* client; if `null`, uses the global default configuration
|
||||
* @param retryConfigurationName The name of a retry configuration for the storage-manager http client; if
|
||||
* `null`, uses the global default configuration
|
||||
* @param usageRequestTimeout The per-attempt request timeout for usage requests to the storage-manager; if
|
||||
* `null`, defaults to 5 minutes
|
||||
*/
|
||||
public record Cdn3StorageManagerConfiguration(
|
||||
@NotNull String baseUri,
|
||||
@@ -29,7 +32,8 @@ public record Cdn3StorageManagerConfiguration(
|
||||
@NotNull Map<Integer, String> sourceSchemes,
|
||||
@NotNull Integer numHttpClients,
|
||||
@Nullable String circuitBreakerConfigurationName,
|
||||
@Nullable String retryConfigurationName) {
|
||||
@Nullable String retryConfigurationName,
|
||||
@NotNull Duration usageRequestTimeout) {
|
||||
|
||||
public Cdn3StorageManagerConfiguration {
|
||||
if (numHttpClients == null) {
|
||||
@@ -38,5 +42,8 @@ public record Cdn3StorageManagerConfiguration(
|
||||
if (sourceSchemes == null) {
|
||||
sourceSchemes = Collections.emptyMap();
|
||||
}
|
||||
if (usageRequestTimeout == null) {
|
||||
usageRequestTimeout = Duration.ofMinutes(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -57,6 +57,7 @@ public class Cdn3RemoteStorageManagerTest {
|
||||
Map.of(2, "gcs", 3, "r2"),
|
||||
2,
|
||||
null,
|
||||
null,
|
||||
null));
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user