Showing content from https://cloud.google.com/cpp/docs/reference/cloudbuild/2.26.0/cloudbuild-override-retry below:
C++ Client Libraries | Google Cloud
Skip to main content
- Overview
-
Library reference docs
- Cloud Build API C++ Client Library
-
Namespaces
-
google::cloud::cloudbuild_mocks
-
google::cloud::cloudbuild_v1
- Overview
-
Classes
-
CloudBuildClient
- Overview
-
Functions
- CreateBuild(std::string const &, google::devtools::cloudbuild::v1::Build const &, Options)
- CreateBuild(ExperimentalTag, NoAwaitTag, std::string const &, google::devtools::cloudbuild::v1::Build const &, Options)
- CreateBuild(google::devtools::cloudbuild::v1::CreateBuildRequest const &, Options)
- CreateBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateBuildRequest const &, Options)
- CreateBuild(ExperimentalTag, google::longrunning::Operation const &, Options)
- GetBuild(std::string const &, std::string const &, Options)
- GetBuild(google::devtools::cloudbuild::v1::GetBuildRequest const &, Options)
- ListBuilds(std::string const &, std::string const &, Options)
- ListBuilds(google::devtools::cloudbuild::v1::ListBuildsRequest, Options)
- CancelBuild(std::string const &, std::string const &, Options)
- CancelBuild(google::devtools::cloudbuild::v1::CancelBuildRequest const &, Options)
- RetryBuild(std::string const &, std::string const &, Options)
- RetryBuild(ExperimentalTag, NoAwaitTag, std::string const &, std::string const &, Options)
- RetryBuild(google::devtools::cloudbuild::v1::RetryBuildRequest const &, Options)
- RetryBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RetryBuildRequest const &, Options)
- RetryBuild(ExperimentalTag, google::longrunning::Operation const &, Options)
- ApproveBuild(std::string const &, google::devtools::cloudbuild::v1::ApprovalResult const &, Options)
- ApproveBuild(ExperimentalTag, NoAwaitTag, std::string const &, google::devtools::cloudbuild::v1::ApprovalResult const &, Options)
- ApproveBuild(google::devtools::cloudbuild::v1::ApproveBuildRequest const &, Options)
- ApproveBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::ApproveBuildRequest const &, Options)
- ApproveBuild(ExperimentalTag, google::longrunning::Operation const &, Options)
- CreateBuildTrigger(std::string const &, google::devtools::cloudbuild::v1::BuildTrigger const &, Options)
- CreateBuildTrigger(google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const &, Options)
- GetBuildTrigger(std::string const &, std::string const &, Options)
- GetBuildTrigger(google::devtools::cloudbuild::v1::GetBuildTriggerRequest const &, Options)
- ListBuildTriggers(std::string const &, Options)
- ListBuildTriggers(google::devtools::cloudbuild::v1::ListBuildTriggersRequest, Options)
- DeleteBuildTrigger(std::string const &, std::string const &, Options)
- DeleteBuildTrigger(google::devtools::cloudbuild::v1::DeleteBuildTriggerRequest const &, Options)
- UpdateBuildTrigger(std::string const &, std::string const &, google::devtools::cloudbuild::v1::BuildTrigger const &, Options)
- UpdateBuildTrigger(google::devtools::cloudbuild::v1::UpdateBuildTriggerRequest const &, Options)
- RunBuildTrigger(std::string const &, std::string const &, google::devtools::cloudbuild::v1::RepoSource const &, Options)
- RunBuildTrigger(ExperimentalTag, NoAwaitTag, std::string const &, std::string const &, google::devtools::cloudbuild::v1::RepoSource const &, Options)
- RunBuildTrigger(google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &, Options)
- RunBuildTrigger(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &, Options)
- RunBuildTrigger(ExperimentalTag, google::longrunning::Operation const &, Options)
- ReceiveTriggerWebhook(google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const &, Options)
- CreateWorkerPool(std::string const &, google::devtools::cloudbuild::v1::WorkerPool const &, std::string const &, Options)
- CreateWorkerPool(ExperimentalTag, NoAwaitTag, std::string const &, google::devtools::cloudbuild::v1::WorkerPool const &, std::string const &, Options)
- CreateWorkerPool(google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &, Options)
- CreateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &, Options)
- CreateWorkerPool(ExperimentalTag, google::longrunning::Operation const &, Options)
- GetWorkerPool(std::string const &, Options)
- GetWorkerPool(google::devtools::cloudbuild::v1::GetWorkerPoolRequest const &, Options)
- DeleteWorkerPool(std::string const &, Options)
- DeleteWorkerPool(ExperimentalTag, NoAwaitTag, std::string const &, Options)
- DeleteWorkerPool(google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &, Options)
- DeleteWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &, Options)
- DeleteWorkerPool(ExperimentalTag, google::longrunning::Operation const &, Options)
- UpdateWorkerPool(google::devtools::cloudbuild::v1::WorkerPool const &, google::protobuf::FieldMask const &, Options)
- UpdateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::WorkerPool const &, google::protobuf::FieldMask const &, Options)
- UpdateWorkerPool(google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &, Options)
- UpdateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &, Options)
- UpdateWorkerPool(ExperimentalTag, google::longrunning::Operation const &, Options)
- ListWorkerPools(std::string const &, Options)
- ListWorkerPools(google::devtools::cloudbuild::v1::ListWorkerPoolsRequest, Options)
-
CloudBuildConnection
- Overview
-
Functions
- virtual options()
- virtual CreateBuild(google::devtools::cloudbuild::v1::CreateBuildRequest const &)
- virtual CreateBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateBuildRequest const &)
- virtual CreateBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetBuild(google::devtools::cloudbuild::v1::GetBuildRequest const &)
- virtual ListBuilds(google::devtools::cloudbuild::v1::ListBuildsRequest)
- virtual CancelBuild(google::devtools::cloudbuild::v1::CancelBuildRequest const &)
- virtual RetryBuild(google::devtools::cloudbuild::v1::RetryBuildRequest const &)
- virtual RetryBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RetryBuildRequest const &)
- virtual RetryBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual ApproveBuild(google::devtools::cloudbuild::v1::ApproveBuildRequest const &)
- virtual ApproveBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::ApproveBuildRequest const &)
- virtual ApproveBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual CreateBuildTrigger(google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const &)
- virtual GetBuildTrigger(google::devtools::cloudbuild::v1::GetBuildTriggerRequest const &)
- virtual ListBuildTriggers(google::devtools::cloudbuild::v1::ListBuildTriggersRequest)
- virtual DeleteBuildTrigger(google::devtools::cloudbuild::v1::DeleteBuildTriggerRequest const &)
- virtual UpdateBuildTrigger(google::devtools::cloudbuild::v1::UpdateBuildTriggerRequest const &)
- virtual RunBuildTrigger(google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &)
- virtual RunBuildTrigger(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &)
- virtual RunBuildTrigger(ExperimentalTag, google::longrunning::Operation const &)
- virtual ReceiveTriggerWebhook(google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const &)
- virtual CreateWorkerPool(google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &)
- virtual CreateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &)
- virtual CreateWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetWorkerPool(google::devtools::cloudbuild::v1::GetWorkerPoolRequest const &)
- virtual DeleteWorkerPool(google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &)
- virtual DeleteWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &)
- virtual DeleteWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual UpdateWorkerPool(google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &)
- virtual UpdateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &)
- virtual UpdateWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual ListWorkerPools(google::devtools::cloudbuild::v1::ListWorkerPoolsRequest)
-
CloudBuildConnectionIdempotencyPolicy
-
CloudBuildLimitedErrorCountRetryPolicy
-
CloudBuildLimitedTimeRetryPolicy
-
Structs
-
google::cloud::cloudbuild_v1_mocks
- Overview
-
Classes
-
MockCloudBuildConnection
- Overview
-
Functions
- virtual options()
- virtual CreateBuild(google::devtools::cloudbuild::v1::CreateBuildRequest const &)
- virtual CreateBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateBuildRequest const &)
- virtual CreateBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetBuild(google::devtools::cloudbuild::v1::GetBuildRequest const &)
- virtual ListBuilds(google::devtools::cloudbuild::v1::ListBuildsRequest)
- virtual CancelBuild(google::devtools::cloudbuild::v1::CancelBuildRequest const &)
- virtual RetryBuild(google::devtools::cloudbuild::v1::RetryBuildRequest const &)
- virtual RetryBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RetryBuildRequest const &)
- virtual RetryBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual ApproveBuild(google::devtools::cloudbuild::v1::ApproveBuildRequest const &)
- virtual ApproveBuild(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::ApproveBuildRequest const &)
- virtual ApproveBuild(ExperimentalTag, google::longrunning::Operation const &)
- virtual CreateBuildTrigger(google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const &)
- virtual GetBuildTrigger(google::devtools::cloudbuild::v1::GetBuildTriggerRequest const &)
- virtual ListBuildTriggers(google::devtools::cloudbuild::v1::ListBuildTriggersRequest)
- virtual DeleteBuildTrigger(google::devtools::cloudbuild::v1::DeleteBuildTriggerRequest const &)
- virtual UpdateBuildTrigger(google::devtools::cloudbuild::v1::UpdateBuildTriggerRequest const &)
- virtual RunBuildTrigger(google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &)
- virtual RunBuildTrigger(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::RunBuildTriggerRequest const &)
- virtual RunBuildTrigger(ExperimentalTag, google::longrunning::Operation const &)
- virtual ReceiveTriggerWebhook(google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const &)
- virtual CreateWorkerPool(google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &)
- virtual CreateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const &)
- virtual CreateWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetWorkerPool(google::devtools::cloudbuild::v1::GetWorkerPoolRequest const &)
- virtual DeleteWorkerPool(google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &)
- virtual DeleteWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const &)
- virtual DeleteWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual UpdateWorkerPool(google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &)
- virtual UpdateWorkerPool(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const &)
- virtual UpdateWorkerPool(ExperimentalTag, google::longrunning::Operation const &)
- virtual ListWorkerPools(google::devtools::cloudbuild::v1::ListWorkerPoolsRequest)
-
google::cloud::cloudbuild_v2
- Overview
-
Classes
-
RepositoryManagerClient
- Overview
-
Functions
- CreateConnection(std::string const &, google::devtools::cloudbuild::v2::Connection const &, std::string const &, Options)
- CreateConnection(ExperimentalTag, NoAwaitTag, std::string const &, google::devtools::cloudbuild::v2::Connection const &, std::string const &, Options)
- CreateConnection(google::devtools::cloudbuild::v2::CreateConnectionRequest const &, Options)
- CreateConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::CreateConnectionRequest const &, Options)
- CreateConnection(ExperimentalTag, google::longrunning::Operation const &, Options)
- GetConnection(std::string const &, Options)
- GetConnection(google::devtools::cloudbuild::v2::GetConnectionRequest const &, Options)
- ListConnections(std::string const &, Options)
- ListConnections(google::devtools::cloudbuild::v2::ListConnectionsRequest, Options)
- UpdateConnection(google::devtools::cloudbuild::v2::Connection const &, google::protobuf::FieldMask const &, Options)
- UpdateConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::Connection const &, google::protobuf::FieldMask const &, Options)
- UpdateConnection(google::devtools::cloudbuild::v2::UpdateConnectionRequest const &, Options)
- UpdateConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::UpdateConnectionRequest const &, Options)
- UpdateConnection(ExperimentalTag, google::longrunning::Operation const &, Options)
- DeleteConnection(std::string const &, Options)
- DeleteConnection(ExperimentalTag, NoAwaitTag, std::string const &, Options)
- DeleteConnection(google::devtools::cloudbuild::v2::DeleteConnectionRequest const &, Options)
- DeleteConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::DeleteConnectionRequest const &, Options)
- DeleteConnection(ExperimentalTag, google::longrunning::Operation const &, Options)
- CreateRepository(std::string const &, google::devtools::cloudbuild::v2::Repository const &, std::string const &, Options)
- CreateRepository(ExperimentalTag, NoAwaitTag, std::string const &, google::devtools::cloudbuild::v2::Repository const &, std::string const &, Options)
- CreateRepository(google::devtools::cloudbuild::v2::CreateRepositoryRequest const &, Options)
- CreateRepository(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::CreateRepositoryRequest const &, Options)
- CreateRepository(ExperimentalTag, google::longrunning::Operation const &, Options)
- BatchCreateRepositories(std::string const &, std::vector< google::devtools::cloudbuild::v2::CreateRepositoryRequest > const &, Options)
- BatchCreateRepositories(ExperimentalTag, NoAwaitTag, std::string const &, std::vector< google::devtools::cloudbuild::v2::CreateRepositoryRequest > const &, Options)
- BatchCreateRepositories(google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const &, Options)
- BatchCreateRepositories(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const &, Options)
- BatchCreateRepositories(ExperimentalTag, google::longrunning::Operation const &, Options)
- GetRepository(std::string const &, Options)
- GetRepository(google::devtools::cloudbuild::v2::GetRepositoryRequest const &, Options)
- ListRepositories(std::string const &, Options)
- ListRepositories(google::devtools::cloudbuild::v2::ListRepositoriesRequest, Options)
- DeleteRepository(std::string const &, Options)
- DeleteRepository(ExperimentalTag, NoAwaitTag, std::string const &, Options)
- DeleteRepository(google::devtools::cloudbuild::v2::DeleteRepositoryRequest const &, Options)
- DeleteRepository(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::DeleteRepositoryRequest const &, Options)
- DeleteRepository(ExperimentalTag, google::longrunning::Operation const &, Options)
- FetchReadWriteToken(std::string const &, Options)
- FetchReadWriteToken(google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const &, Options)
- FetchReadToken(std::string const &, Options)
- FetchReadToken(google::devtools::cloudbuild::v2::FetchReadTokenRequest const &, Options)
- FetchLinkableRepositories(google::devtools::cloudbuild::v2::FetchLinkableRepositoriesRequest, Options)
- FetchGitRefs(std::string const &, Options)
- FetchGitRefs(google::devtools::cloudbuild::v2::FetchGitRefsRequest const &, Options)
-
RepositoryManagerConnection
- Overview
-
Functions
- virtual options()
- virtual CreateConnection(google::devtools::cloudbuild::v2::CreateConnectionRequest const &)
- virtual CreateConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::CreateConnectionRequest const &)
- virtual CreateConnection(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetConnection(google::devtools::cloudbuild::v2::GetConnectionRequest const &)
- virtual ListConnections(google::devtools::cloudbuild::v2::ListConnectionsRequest)
- virtual UpdateConnection(google::devtools::cloudbuild::v2::UpdateConnectionRequest const &)
- virtual UpdateConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::UpdateConnectionRequest const &)
- virtual UpdateConnection(ExperimentalTag, google::longrunning::Operation const &)
- virtual DeleteConnection(google::devtools::cloudbuild::v2::DeleteConnectionRequest const &)
- virtual DeleteConnection(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::DeleteConnectionRequest const &)
- virtual DeleteConnection(ExperimentalTag, google::longrunning::Operation const &)
- virtual CreateRepository(google::devtools::cloudbuild::v2::CreateRepositoryRequest const &)
- virtual CreateRepository(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::CreateRepositoryRequest const &)
- virtual CreateRepository(ExperimentalTag, google::longrunning::Operation const &)
- virtual BatchCreateRepositories(google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const &)
- virtual BatchCreateRepositories(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const &)
- virtual BatchCreateRepositories(ExperimentalTag, google::longrunning::Operation const &)
- virtual GetRepository(google::devtools::cloudbuild::v2::GetRepositoryRequest const &)
- virtual ListRepositories(google::devtools::cloudbuild::v2::ListRepositoriesRequest)
- virtual DeleteRepository(google::devtools::cloudbuild::v2::DeleteRepositoryRequest const &)
- virtual DeleteRepository(ExperimentalTag, NoAwaitTag, google::devtools::cloudbuild::v2::DeleteRepositoryRequest const &)
- virtual DeleteRepository(ExperimentalTag, google::longrunning::Operation const &)
- virtual FetchReadWriteToken(google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const &)
- virtual FetchReadToken(google::devtools::cloudbuild::v2::FetchReadTokenRequest const &)
- virtual FetchLinkableRepositories(google::devtools::cloudbuild::v2::FetchLinkableRepositoriesRequest)
- virtual FetchGitRefs(google::devtools::cloudbuild::v2::FetchGitRefsRequest const &)
-
RepositoryManagerConnectionIdempotencyPolicy
-
RepositoryManagerLimitedErrorCountRetryPolicy
-
RepositoryManagerLimitedTimeRetryPolicy
-
Structs
-
RepositoryManagerBackoffPolicyOption
-
RepositoryManagerConnectionIdempotencyPolicyOption
-
RepositoryManagerPollingPolicyOption
-
RepositoryManagerRetryPolicyOption
-
google::cloud::cloudbuild_v2_mocks
Stay organized with collections Save and categorize content based on your preferences.
Override Retry, Backoff, and Idempotency Policies
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 duration
The *RetryPolicyOption
controls:
- Which errors are to be treated as transient errors.
- How long the library will keep retrying transient errors.
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.
Controlling the backoff algorithm
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.
Controlling which operations are retryable
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.
Example
For example, this will override the retry policies for cloudbuild_v1::CloudBuildClient
:
auto options =
google::cloud::Options{}
.set<google::cloud::cloudbuild_v1::
CloudBuildConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::cloudbuild_v1::CloudBuildRetryPolicyOption>(
google::cloud::cloudbuild_v1::
CloudBuildLimitedErrorCountRetryPolicy(3)
.clone())
.set<google::cloud::cloudbuild_v1::CloudBuildBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection =
google::cloud::cloudbuild_v1::MakeCloudBuildConnection(options);
// c1 and c2 share the same retry policies
auto c1 = google::cloud::cloudbuild_v1::CloudBuildClient(connection);
auto c2 = google::cloud::cloudbuild_v1::CloudBuildClient(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::cloudbuild_v1::CloudBuildClient(
connection,
google::cloud::Options{}
.set<google::cloud::cloudbuild_v1::CloudBuildRetryPolicyOption>(
google::cloud::cloudbuild_v1::CloudBuildLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::cloudbuild_v1::CloudBuildRetryPolicyOption>(
// google::cloud::cloudbuild_v1::CloudBuildLimitedErrorCountRetryPolicy(10).clone()));
This assumes you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy : public google::cloud::cloudbuild_v1::
CloudBuildConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<
google::cloud::cloudbuild_v1::CloudBuildConnectionIdempotencyPolicy>
clone() const override {
return std::make_unique<CustomIdempotencyPolicy>(*this);
}
// Override inherited functions to define as needed.
};
This will override the polling policies for cloudbuild_v1::CloudBuildClient
// 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::cloudbuild_v1::CloudBuildPollingPolicyOption>(
google::cloud::GenericPollingPolicy<
google::cloud::cloudbuild_v1::CloudBuildRetryPolicyOption::
Type,
google::cloud::cloudbuild_v1::CloudBuildBackoffPolicyOption::
Type>(
google::cloud::cloudbuild_v1::
CloudBuildLimitedTimeRetryPolicy(
/*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::cloudbuild_v1::MakeCloudBuildConnection(options);
// c1 and c2 share the same polling policies.
auto c1 = google::cloud::cloudbuild_v1::CloudBuildClient(connection);
auto c2 = google::cloud::cloudbuild_v1::CloudBuildClient(connection);
Follow these links to find examples for other *Client
classes:
More Information See Also
google::cloud::Options
See Also
google::cloud::BackoffPolicy
See Also
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 with configurable policies for retries, backoff, and idempotency."],["Retry policies can be configured when creating `*Connection` and `*Client` objects, or even when calling specific member functions, allowing for various levels of customization and shared or unique behaviors between clients."],["The library uses three main options to control the retry loop: `*RetryPolicyOption` for managing transient errors and retry duration, `*BackoffPolicyOption` for controlling the backoff algorithm, and `*IdempotencyPolicyOption` for determining which operations are safe to retry."],["Built-in policies such as `*LimitedErrorCountRetryPolicy`, `*LimitedTimeRetryPolicy`, and `ExponentialBackoffPolicy` provide common retry and backoff strategies, while custom policies can be created to handle unique requirements."],["The provided example shows how to override the retry policies for `cloudbuild_v1::CloudBuildClient` and also outlines how to manage polling policies for long-running operations with examples for other `*Client` classes, such as `cloudbuild_v2::RepositoryManagerClient`."]]],[]]
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