the maximum time allowed before the policy expires. While the application can express this time in any units they desire, the class truncates to milliseconds.
typename DurationRep
a placeholder to match the Rep tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the underlying arithmetic type used to store the number of ticks. For our purposes it is simply a formal parameter.
typename DurationPeriod
a placeholder to match the Period tparam for duration's type. The semantics of this template parameter are documented in std::chrono::duration<>. In brief, the length of the tick in seconds, expressed as a std::ratio<>. For our purposes it is simply a formal parameter.
[[["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\u003eThis webpage details the \u003ccode\u003eServicesLimitedTimeRetryPolicy\u003c/code\u003e class, which is a retry policy for \u003ccode\u003eServicesConnection\u003c/code\u003e that retries based on elapsed time.\u003c/p\u003e\n"],["\u003cp\u003eThe policy stops retrying if a non-transient error occurs or if the elapsed time exceeds a preset duration, treating \u003ccode\u003ekUnavailable\u003c/code\u003e status codes as transient errors.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides constructors to define the maximum retry duration using \u003ccode\u003estd::chrono::duration\u003c/code\u003e, and the policy will truncate any time units to milliseconds.\u003c/p\u003e\n"],["\u003cp\u003eIt includes functions to check if retries are exhausted (\u003ccode\u003eIsExhausted()\u003c/code\u003e), if a failure is permanent (\u003ccode\u003eIsPermanentFailure()\u003c/code\u003e), and to retrieve the maximum duration (\u003ccode\u003emaximum_duration()\u003c/code\u003e), as well as creating new policy instances with (\u003ccode\u003eclone()\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eThe page also contains a comprehensive list of versions of this class, with the latest being \u003ccode\u003e2.37.0-rc\u003c/code\u003e, and ranging back to version \u003ccode\u003e2.11.0\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Class ServicesLimitedTimeRetryPolicy (2.42.0-rc)\n\nVersion latestkeyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/run/latest/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.41.0](/cpp/docs/reference/run/2.41.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.40.0](/cpp/docs/reference/run/2.40.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.39.0](/cpp/docs/reference/run/2.39.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.38.0](/cpp/docs/reference/run/2.38.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.37.0](/cpp/docs/reference/run/2.37.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.36.0](/cpp/docs/reference/run/2.36.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.35.0](/cpp/docs/reference/run/2.35.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.34.0](/cpp/docs/reference/run/2.34.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.33.0](/cpp/docs/reference/run/2.33.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.32.0](/cpp/docs/reference/run/2.32.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.31.0](/cpp/docs/reference/run/2.31.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.30.0](/cpp/docs/reference/run/2.30.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.29.0](/cpp/docs/reference/run/2.29.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.28.0](/cpp/docs/reference/run/2.28.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.27.0](/cpp/docs/reference/run/2.27.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.26.0](/cpp/docs/reference/run/2.26.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.25.1](/cpp/docs/reference/run/2.25.1/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.24.0](/cpp/docs/reference/run/2.24.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.23.0](/cpp/docs/reference/run/2.23.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.22.1](/cpp/docs/reference/run/2.22.1/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.21.0](/cpp/docs/reference/run/2.21.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.20.0](/cpp/docs/reference/run/2.20.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.19.0](/cpp/docs/reference/run/2.19.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.18.0](/cpp/docs/reference/run/2.18.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.17.0](/cpp/docs/reference/run/2.17.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.16.0](/cpp/docs/reference/run/2.16.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.15.1](/cpp/docs/reference/run/2.15.1/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.14.0](/cpp/docs/reference/run/2.14.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.13.0](/cpp/docs/reference/run/2.13.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.12.0](/cpp/docs/reference/run/2.12.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy)\n- [2.11.0](/cpp/docs/reference/run/2.11.0/classgoogle_1_1cloud_1_1run__v2_1_1ServicesLimitedTimeRetryPolicy) \nA retry policy for [`ServicesConnection`](/cpp/docs/reference/run/latest/classgoogle_1_1cloud_1_1run__v2_1_1ServicesConnection) based on elapsed time. \nThis policy stops retrying if:\n\n- An RPC returns a non-transient error.\n- The elapsed time in the retry loop exceeds a prescribed duration.\n\nIn this class the following status codes are treated as transient errors:\n\n- [`kUnavailable`](https://cloud.google.com/cpp/docs/reference/common/latest/namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847.html)\n\nConstructors\n------------\n\n### ServicesLimitedTimeRetryPolicy(std::chrono::duration\\\u003c DurationRep, DurationPeriod \\\u003e)\n\nConstructor given a `std::chrono::duration\u003c\u003e` object. \n\n###### See Also\n\n\u003chttps://en.cppreference.com/w/cpp/chrono/duration\u003e for more information about `std::chrono::duration`.\n\n### ServicesLimitedTimeRetryPolicy(ServicesLimitedTimeRetryPolicy \\&\\&)\n\n### ServicesLimitedTimeRetryPolicy(ServicesLimitedTimeRetryPolicy const \\&)\n\nFunctions\n---------\n\n### maximum_duration() const\n\n### virtual OnFailure(Status const \\&)\n\n### virtual IsExhausted() const\n\n### virtual IsPermanentFailure(Status const \\&) const\n\n### virtual clone() const\n\nCreates a new instance of the policy, reset to the initial state.\n\nType Aliases\n------------\n\n### BaseType\n\n**Alias Of** : `ServicesRetryPolicy`"]]