Library reference docs
Namespaces
google::cloud::discoveryengine_v1
Classes
CompletionServiceClient
Functions
CompletionServiceConnectionIdempotencyPolicy
CompletionServiceLimitedErrorCountRetryPolicy
CompletionServiceLimitedTimeRetryPolicy
ControlServiceClient
Functions
ControlServiceConnectionIdempotencyPolicy
ControlServiceLimitedErrorCountRetryPolicy
ControlServiceLimitedTimeRetryPolicy
ConversationalSearchServiceClient
Functions
ConversationalSearchServiceConnection
ConversationalSearchServiceConnectionIdempotencyPolicy
ConversationalSearchServiceLimitedErrorCountRetryPolicy
ConversationalSearchServiceLimitedTimeRetryPolicy
ConversationalSearchServiceRetryPolicy
DataStoreServiceClient
Functions
DataStoreServiceConnectionIdempotencyPolicy
DataStoreServiceLimitedErrorCountRetryPolicy
DataStoreServiceLimitedTimeRetryPolicy
DocumentServiceClient
Functions
DocumentServiceConnectionIdempotencyPolicy
DocumentServiceLimitedErrorCountRetryPolicy
DocumentServiceLimitedTimeRetryPolicy
EngineServiceClient
Functions
EngineServiceConnectionIdempotencyPolicy
EngineServiceLimitedErrorCountRetryPolicy
EngineServiceLimitedTimeRetryPolicy
GroundedGenerationServiceClient
GroundedGenerationServiceConnection
GroundedGenerationServiceConnectionIdempotencyPolicy
GroundedGenerationServiceLimitedErrorCountRetryPolicy
GroundedGenerationServiceLimitedTimeRetryPolicy
GroundedGenerationServiceRetryPolicy
ProjectServiceClient
Functions
ProjectServiceConnectionIdempotencyPolicy
ProjectServiceLimitedErrorCountRetryPolicy
ProjectServiceLimitedTimeRetryPolicy
RankServiceConnectionIdempotencyPolicy
RankServiceLimitedErrorCountRetryPolicy
RankServiceLimitedTimeRetryPolicy
RecommendationServiceConnection
RecommendationServiceConnectionIdempotencyPolicy
RecommendationServiceLimitedErrorCountRetryPolicy
RecommendationServiceLimitedTimeRetryPolicy
RecommendationServiceRetryPolicy
SchemaServiceClient
Functions
SchemaServiceConnectionIdempotencyPolicy
SchemaServiceLimitedErrorCountRetryPolicy
SchemaServiceLimitedTimeRetryPolicy
SearchServiceConnectionIdempotencyPolicy
SearchServiceLimitedErrorCountRetryPolicy
SearchServiceLimitedTimeRetryPolicy
SiteSearchEngineServiceClient
Functions
SiteSearchEngineServiceConnection
Functions
SiteSearchEngineServiceConnectionIdempotencyPolicy
SiteSearchEngineServiceLimitedErrorCountRetryPolicy
SiteSearchEngineServiceLimitedTimeRetryPolicy
SiteSearchEngineServiceRetryPolicy
UserEventServiceClient
Functions
UserEventServiceConnectionIdempotencyPolicy
UserEventServiceLimitedErrorCountRetryPolicy
UserEventServiceLimitedTimeRetryPolicy
Structs
CompletionServiceBackoffPolicyOption
CompletionServiceConnectionIdempotencyPolicyOption
CompletionServicePollingPolicyOption
CompletionServiceRetryPolicyOption
ControlServiceBackoffPolicyOption
ControlServiceConnectionIdempotencyPolicyOption
ControlServiceRetryPolicyOption
ConversationalSearchServiceBackoffPolicyOption
ConversationalSearchServiceConnectionIdempotencyPolicyOption
ConversationalSearchServiceRetryPolicyOption
DataStoreServiceBackoffPolicyOption
DataStoreServiceConnectionIdempotencyPolicyOption
DataStoreServicePollingPolicyOption
DataStoreServiceRetryPolicyOption
DocumentServiceBackoffPolicyOption
DocumentServiceConnectionIdempotencyPolicyOption
DocumentServicePollingPolicyOption
DocumentServiceRetryPolicyOption
EngineServiceBackoffPolicyOption
EngineServiceConnectionIdempotencyPolicyOption
EngineServicePollingPolicyOption
GroundedGenerationServiceBackoffPolicyOption
GroundedGenerationServiceConnectionIdempotencyPolicyOption
GroundedGenerationServiceRetryPolicyOption
ProjectServiceBackoffPolicyOption
ProjectServiceConnectionIdempotencyPolicyOption
ProjectServicePollingPolicyOption
ProjectServiceRetryPolicyOption
RankServiceConnectionIdempotencyPolicyOption
RecommendationServiceBackoffPolicyOption
RecommendationServiceConnectionIdempotencyPolicyOption
RecommendationServiceRetryPolicyOption
SchemaServiceBackoffPolicyOption
SchemaServiceConnectionIdempotencyPolicyOption
SchemaServicePollingPolicyOption
SearchServiceBackoffPolicyOption
SearchServiceConnectionIdempotencyPolicyOption
SiteSearchEngineServiceBackoffPolicyOption
SiteSearchEngineServiceConnectionIdempotencyPolicyOption
SiteSearchEngineServicePollingPolicyOption
SiteSearchEngineServiceRetryPolicyOption
UserEventServiceBackoffPolicyOption
UserEventServiceConnectionIdempotencyPolicyOption
UserEventServicePollingPolicyOption
UserEventServiceRetryPolicyOption
google::cloud::discoveryengine_v1_mocks
Classes
MockCompletionServiceConnection
MockConversationalSearchServiceConnection
MockGroundedGenerationServiceConnection
MockRecommendationServiceConnection
MockSiteSearchEngineServiceConnection
Functions
Stay organized with collections Save and categorize content based on your preferences.
When it is safe to do so, the library automatically retries requests that fail due to a transient error. The library then uses exponential backoff to backoff before trying again. Which operations are considered safe to retry, which errors are treated as transient failures, the details of the exponential backoff algorithm, and for how long the library retries are all configurable via policies.
This document provides examples showing how to override the default policies.
The policies can be set when the *Connection
object is created. The library provides default policies for any policy that is not set. The application can also override some (or all) policies when the *Client
object is created. This can be useful if multiple *Client
objects share the same *Connection
object, but you want different retry behavior in some of the clients. Finally, the application can override some retry policies when calling a specific member function.
The library uses three different options to control the retry loop. The options have per-client names.
Configuring the transient errors and retry durationThe *RetryPolicyOption
controls:
You can provide your own class for this option. The library also provides two built-in policies:
*LimitedErrorCountRetryPolicy
: stops retrying after a specified number of transient errors.*LimitedTimeRetryPolicy
: stops retrying after a specified time.Note that a library may have more than one version of these classes. Their name match the *Client
and *Connection
object they are intended to be used with. Some *Client
objects treat different error codes as transient errors. In most cases, only kUnavailable is treated as a transient error.
The *BackoffPolicyOption
controls how long the client library will wait before retrying a request that failed with a transient error. You can provide your own class for this option.
The only built-in backoff policy is ExponentialBackoffPolicy
. This class implements a truncated exponential backoff algorithm, with jitter. In summary, it doubles the current backoff time after each failure. The actual backoff time for an RPC is chosen at random, but never exceeds the current backoff. The current backoff is doubled after each failure, but never exceeds (or is "truncated") if it reaches a prescribed maximum.
The *IdempotencyPolicyOption
controls which requests are retryable, as some requests are never safe to retry.
Only one built-in idempotency policy is provided by the library. The name matches the name of the client it is intended for. For example, FooBarClient
will use FooBarIdempotencyPolicy
. This policy is very conservative.
For example, this will override the retry policies for discoveryengine_v1::CompletionServiceClient
:
auto options =
google::cloud::Options{}
.set<google::cloud::discoveryengine_v1::
CompletionServiceConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::discoveryengine_v1::
CompletionServiceRetryPolicyOption>(
google::cloud::discoveryengine_v1::
CompletionServiceLimitedErrorCountRetryPolicy(3)
.clone())
.set<google::cloud::discoveryengine_v1::
CompletionServiceBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection =
google::cloud::discoveryengine_v1::MakeCompletionServiceConnection(
options);
// c1 and c2 share the same retry policies
auto c1 =
google::cloud::discoveryengine_v1::CompletionServiceClient(connection);
auto c2 =
google::cloud::discoveryengine_v1::CompletionServiceClient(connection);
// You can override any of the policies in a new client. This new client
// will share the policies from c1 (or c2) *except* for the retry policy.
auto c3 = google::cloud::discoveryengine_v1::CompletionServiceClient(
connection, google::cloud::Options{}
.set<google::cloud::discoveryengine_v1::
CompletionServiceRetryPolicyOption>(
google::cloud::discoveryengine_v1::
CompletionServiceLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::discoveryengine_v1::CompletionServiceRetryPolicyOption>(
// google::cloud::discoveryengine_v1::CompletionServiceLimitedErrorCountRetryPolicy(10).clone()));
This assumes you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy
: public google::cloud::discoveryengine_v1::
CompletionServiceConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<google::cloud::discoveryengine_v1::
CompletionServiceConnectionIdempotencyPolicy>
clone() const override {
return std::make_unique<CustomIdempotencyPolicy>(*this);
}
// Override inherited functions to define as needed.
};
This will override the polling policies for discoveryengine_v1::CompletionServiceClient
// The polling policy controls how the client waits for long-running
// operations. `GenericPollingPolicy<>` combines existing policies.
// In this case, keep polling until the operation completes (with success
// or error) or 45 minutes, whichever happens first. Initially pause for
// 10 seconds between polling requests, increasing the pause by a factor
// of 4 until it becomes 2 minutes.
auto options =
google::cloud::Options{}
.set<google::cloud::discoveryengine_v1::
CompletionServicePollingPolicyOption>(
google::cloud::GenericPollingPolicy<
google::cloud::discoveryengine_v1::
CompletionServiceRetryPolicyOption::Type,
google::cloud::discoveryengine_v1::
CompletionServiceBackoffPolicyOption::Type>(
google::cloud::discoveryengine_v1::
CompletionServiceLimitedTimeRetryPolicy(
/*maximum_duration=*/std::chrono::minutes(45))
.clone(),
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::seconds(10),
/*maximum_delay=*/std::chrono::minutes(2),
/*scaling=*/4.0)
.clone())
.clone());
auto connection =
google::cloud::discoveryengine_v1::MakeCompletionServiceConnection(
options);
// c1 and c2 share the same polling policies.
auto c1 =
google::cloud::discoveryengine_v1::CompletionServiceClient(connection);
auto c2 =
google::cloud::discoveryengine_v1::CompletionServiceClient(connection);
Follow these links to find examples for other *Client
classes:
discoveryengine_v1::CompletionServiceClient
discoveryengine_v1::ControlServiceClient
discoveryengine_v1::ConversationalSearchServiceClient
discoveryengine_v1::DataStoreServiceClient
discoveryengine_v1::DocumentServiceClient
discoveryengine_v1::EngineServiceClient
discoveryengine_v1::GroundedGenerationServiceClient
discoveryengine_v1::ProjectServiceClient
discoveryengine_v1::RankServiceClient
discoveryengine_v1::RecommendationServiceClient
discoveryengine_v1::SchemaServiceClient
discoveryengine_v1::SearchServiceClient
discoveryengine_v1::SiteSearchEngineServiceClient
discoveryengine_v1::UserEventServiceClient
google::cloud::ExponentialBackoffPolicy
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["The library automatically retries requests that fail due to transient errors, using exponential backoff."],["Retry behavior, including which errors are considered transient, backoff details, and retry duration, can be configured via policies."],["Three main options control the retry loop: `*RetryPolicyOption` for transient errors and duration, `*BackoffPolicyOption` for the backoff algorithm, and `*IdempotencyPolicyOption` for determining which operations are retryable."],["Policies can be set when a `*Connection` object is created, overridden when a `*Client` object is created, or even further overridden when calling a specific member function."],["The documentation provides links to examples for multiple client classes within `discoveryengine_v1`, showcasing how to override these retry and polling policies for each."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4