This shows how to override the retry policies for run_v2::ExecutionsClient:
auto options =
google::cloud::Options{}
.set<google::cloud::run_v2::
ExecutionsConnectionIdempotencyPolicyOption>(
CustomIdempotencyPolicy().clone())
.set<google::cloud::run_v2::ExecutionsRetryPolicyOption>(
google::cloud::run_v2::ExecutionsLimitedErrorCountRetryPolicy(3)
.clone())
.set<google::cloud::run_v2::ExecutionsBackoffPolicyOption>(
google::cloud::ExponentialBackoffPolicy(
/*initial_delay=*/std::chrono::milliseconds(200),
/*maximum_delay=*/std::chrono::seconds(45),
/*scaling=*/2.0)
.clone());
auto connection = google::cloud::run_v2::MakeExecutionsConnection(options);
// c1 and c2 share the same retry policies
auto c1 = google::cloud::run_v2::ExecutionsClient(connection);
auto c2 = google::cloud::run_v2::ExecutionsClient(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::run_v2::ExecutionsClient(
connection,
google::cloud::Options{}
.set<google::cloud::run_v2::ExecutionsRetryPolicyOption>(
google::cloud::run_v2::ExecutionsLimitedTimeRetryPolicy(
std::chrono::minutes(5))
.clone()));
// You can also override the policies in a single call:
// c3.SomeRpc(..., google::cloud::Options{}
// .set<google::cloud::run_v2::ExecutionsRetryPolicyOption>(
// google::cloud::run_v2::ExecutionsLimitedErrorCountRetryPolicy(10).clone()));
Assuming you have created a custom idempotency policy. Such as:
class CustomIdempotencyPolicy
: public google::cloud::run_v2::ExecutionsConnectionIdempotencyPolicy {
public:
~CustomIdempotencyPolicy() override = default;
std::unique_ptr<google::cloud::run_v2::ExecutionsConnectionIdempotencyPolicy>
clone() const override {
return std::make_unique<CustomIdempotencyPolicy>(*this);
}
// Override inherited functions to define as needed.
};
[[["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-09-04 UTC."],[[["\u003cp\u003eThe webpage provides documentation for overriding retry policies for \u003ccode\u003erun_v2::ExecutionsClient\u003c/code\u003e in different versions, ranging from 2.11.0 to the latest release candidate 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eYou can customize retry policies, including the idempotency, retry, and backoff policies, using \u003ccode\u003egoogle::cloud::Options\u003c/code\u003e to configure \u003ccode\u003erun_v2::ExecutionsClient\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eOnce policies are established in the connection, newly created clients using that connection will have the same retry policies, but policies can also be overidden in specific clients or for single calls.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation includes an example of creating a \u003ccode\u003eCustomIdempotencyPolicy\u003c/code\u003e class for further customization of retry behavior.\u003c/p\u003e\n"],["\u003cp\u003eThe content provides multiple snippet versions for \u003ccode\u003erun_v2_1_1ExecutionsClient-retry-snippet\u003c/code\u003e, accessible via the different version links.\u003c/p\u003e\n"]]],[],null,["Version 2.27.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/run/latest/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.41.0](/cpp/docs/reference/run/2.41.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.40.0](/cpp/docs/reference/run/2.40.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.39.0](/cpp/docs/reference/run/2.39.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.38.0](/cpp/docs/reference/run/2.38.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.37.0](/cpp/docs/reference/run/2.37.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.36.0](/cpp/docs/reference/run/2.36.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.35.0](/cpp/docs/reference/run/2.35.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.34.0](/cpp/docs/reference/run/2.34.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.33.0](/cpp/docs/reference/run/2.33.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.32.0](/cpp/docs/reference/run/2.32.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.31.0](/cpp/docs/reference/run/2.31.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.30.0](/cpp/docs/reference/run/2.30.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.29.0](/cpp/docs/reference/run/2.29.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.28.0](/cpp/docs/reference/run/2.28.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.27.0](/cpp/docs/reference/run/2.27.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.26.0](/cpp/docs/reference/run/2.26.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.25.1](/cpp/docs/reference/run/2.25.1/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.24.0](/cpp/docs/reference/run/2.24.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.23.0](/cpp/docs/reference/run/2.23.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.22.1](/cpp/docs/reference/run/2.22.1/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.21.0](/cpp/docs/reference/run/2.21.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.20.0](/cpp/docs/reference/run/2.20.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.19.0](/cpp/docs/reference/run/2.19.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.18.0](/cpp/docs/reference/run/2.18.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.17.0](/cpp/docs/reference/run/2.17.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.16.0](/cpp/docs/reference/run/2.16.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.15.1](/cpp/docs/reference/run/2.15.1/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.14.0](/cpp/docs/reference/run/2.14.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.13.0](/cpp/docs/reference/run/2.13.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.12.0](/cpp/docs/reference/run/2.12.0/run_v2_1_1ExecutionsClient-retry-snippet)\n- [2.11.0](/cpp/docs/reference/run/2.11.0/run_v2_1_1ExecutionsClient-retry-snippet) \n\nOverride run_v2::ExecutionsClient Retry Policies\n================================================\n\nThis shows how to override the retry policies for run_v2::ExecutionsClient: \n\n auto options =\n google::cloud::Options{}\n .set\u003cgoogle::cloud::run_v2::\n ExecutionsConnectionIdempotencyPolicyOption\u003e(\n CustomIdempotencyPolicy().clone())\n .set\u003cgoogle::cloud::run_v2::ExecutionsRetryPolicyOption\u003e(\n google::cloud::run_v2::ExecutionsLimitedErrorCountRetryPolicy(3)\n .clone())\n .set\u003cgoogle::cloud::run_v2::ExecutionsBackoffPolicyOption\u003e(\n google::cloud::ExponentialBackoffPolicy(\n /*initial_delay=*/std::chrono::milliseconds(200),\n /*maximum_delay=*/std::chrono::seconds(45),\n /*scaling=*/2.0)\n .clone());\n auto connection = google::cloud::run_v2::MakeExecutionsConnection(options);\n\n // c1 and c2 share the same retry policies\n auto c1 = google::cloud::run_v2::ExecutionsClient(connection);\n auto c2 = google::cloud::run_v2::ExecutionsClient(connection);\n\n // You can override any of the policies in a new client. This new client\n // will share the policies from c1 (or c2) *except* for the retry policy.\n auto c3 = google::cloud::run_v2::ExecutionsClient(\n connection,\n google::cloud::Options{}\n .set\u003cgoogle::cloud::run_v2::ExecutionsRetryPolicyOption\u003e(\n google::cloud::run_v2::ExecutionsLimitedTimeRetryPolicy(\n std::chrono::minutes(5))\n .clone()));\n\n // You can also override the policies in a single call:\n // c3.SomeRpc(..., google::cloud::Options{}\n // .set\u003cgoogle::cloud::run_v2::ExecutionsRetryPolicyOption\u003e(\n // google::cloud::run_v2::ExecutionsLimitedErrorCountRetryPolicy(10).clone()));\n\nAssuming you have created a custom idempotency policy. Such as: \n\n class CustomIdempotencyPolicy\n : public google::cloud::run_v2::ExecutionsConnectionIdempotencyPolicy {\n public:\n ~CustomIdempotencyPolicy() override = default;\n std::unique_ptr\u003cgoogle::cloud::run_v2::ExecutionsConnectionIdempotencyPolicy\u003e\n clone() const override {\n return std::make_unique\u003cCustomIdempotencyPolicy\u003e(*this);\n }\n // Override inherited functions to define as needed.\n };"]]