|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Retry executor template class. More...
#include <retry_policy.h>

Public Types | |
| using | config = retry_config |
Public Member Functions | |
| retry_executor () | |
| retry_executor (const std::string &name) | |
| retry_executor (const std::string &name, const config &cfg) | |
| template<typename Func > | |
| common::Result< T > | execute (Func &&func) |
| Execute a function with retry logic. | |
| retry_metrics | get_metrics () const |
| Get retry metrics. | |
| void | reset_metrics () |
| Reset metrics. | |
| const std::string & | get_name () const |
| Get executor name. | |
Private Member Functions | |
| std::chrono::milliseconds | calculate_delay (size_t attempt) const |
| Calculate delay for the current attempt. | |
Static Private Member Functions | |
| static size_t | fibonacci (size_t n) |
| Calculate Fibonacci number. | |
Private Attributes | |
| std::string | name_ |
| config | config_ |
| retry_metrics | metrics_ |
Retry executor template class.
Executes operations with configurable retry logic.
| T | The return value type of operations |
Definition at line 134 of file retry_policy.h.
| using kcenon::monitoring::retry_executor< T >::config = retry_config |
Definition at line 136 of file retry_policy.h.
|
inline |
Definition at line 138 of file retry_policy.h.
|
inlineexplicit |
Definition at line 140 of file retry_policy.h.
|
inlineexplicit |
Definition at line 143 of file retry_policy.h.
|
inlineprivate |
Calculate delay for the current attempt.
| attempt | Current attempt number (0-indexed) |
Definition at line 213 of file retry_policy.h.
References kcenon::monitoring::retry_config::backoff_multiplier, kcenon::monitoring::retry_executor< T >::config_, kcenon::monitoring::delay, kcenon::monitoring::exponential_backoff, kcenon::monitoring::retry_executor< T >::fibonacci(), kcenon::monitoring::fibonacci_backoff, kcenon::monitoring::fixed_delay, kcenon::monitoring::retry_config::initial_delay, kcenon::monitoring::linear_backoff, kcenon::monitoring::retry_config::max_delay, and kcenon::monitoring::retry_config::strategy.
Referenced by kcenon::monitoring::retry_executor< T >::execute().


|
inline |
Execute a function with retry logic.
| Func | The function type to execute (must return common::Result<T>) |
| func | The function to execute |
Definition at line 154 of file retry_policy.h.
References kcenon::monitoring::retry_executor< T >::calculate_delay(), kcenon::monitoring::retry_executor< T >::config_, kcenon::monitoring::delay, kcenon::monitoring::retry_metrics::failed_executions, kcenon::monitoring::error_info::from_common_error(), kcenon::monitoring::retry_config::max_attempts, kcenon::monitoring::retry_executor< T >::metrics_, kcenon::monitoring::operation_failed, kcenon::monitoring::retry_config::should_retry, kcenon::monitoring::retry_metrics::successful_executions, kcenon::monitoring::retry_metrics::total_executions, and kcenon::monitoring::retry_metrics::total_retries.
Referenced by demonstrate_combined_patterns(), demonstrate_retry_policy(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().


|
inlinestaticprivate |
Calculate Fibonacci number.
| n | Index in Fibonacci sequence |
Definition at line 250 of file retry_policy.h.
Referenced by kcenon::monitoring::retry_executor< T >::calculate_delay().

|
inline |
Get retry metrics.
Definition at line 189 of file retry_policy.h.
References kcenon::monitoring::retry_executor< T >::metrics_.
Referenced by demonstrate_combined_patterns(), demonstrate_retry_policy(), TEST_F(), TEST_F(), and TEST_F().

|
inline |
Get executor name.
Definition at line 203 of file retry_policy.h.
References kcenon::monitoring::retry_executor< T >::name_.
|
inline |
Reset metrics.
Definition at line 196 of file retry_policy.h.
References kcenon::monitoring::retry_executor< T >::metrics_, and kcenon::monitoring::retry_metrics::reset().
Referenced by TEST_F().


|
private |
Definition at line 266 of file retry_policy.h.
Referenced by kcenon::monitoring::retry_executor< T >::calculate_delay(), and kcenon::monitoring::retry_executor< T >::execute().
|
mutableprivate |
Definition at line 267 of file retry_policy.h.
Referenced by kcenon::monitoring::retry_executor< T >::execute(), kcenon::monitoring::retry_executor< T >::get_metrics(), and kcenon::monitoring::retry_executor< T >::reset_metrics().
|
private |
Definition at line 265 of file retry_policy.h.
Referenced by kcenon::monitoring::retry_executor< T >::get_name().