Class CompositePolicy
- Namespace
- LMKit.Agents.Resilience
- Assembly
- LM-Kit.NET.dll
Combines multiple resilience policies into a single policy.
Policies are executed in order from outermost to innermost. For example: Timeout -> Retry -> CircuitBreaker -> Action.
public sealed class CompositePolicy : IResiliencePolicy
- Inheritance
-
CompositePolicy
- Implements
- Inherited Members
- Extension Methods
Examples
var policy = new CompositePolicy()
.Wrap(new TimeoutPolicy(TimeSpan.FromMinutes(5)))
.Wrap(new RetryPolicy(3))
.Wrap(new CircuitBreakerPolicy(5, TimeSpan.FromSeconds(30)));
var result = await policy.ExecuteAsync(ct => agent.RunAsync("Hello", ct));
Constructors
- CompositePolicy()
Initializes a new instance of the CompositePolicy class.
- CompositePolicy(params IResiliencePolicy[])
Initializes a composite with the specified policies.
Properties
- Name
Gets the name of this policy.
- Policies
Gets the policies in this composite.
Methods
- ExecuteAsync<T>(Func<ResilienceContext, CancellationToken, Task<T>>, ResilienceContext, CancellationToken)
Executes an action with this policy and context.
- ExecuteAsync<T>(Func<CancellationToken, Task<T>>, CancellationToken)
Executes an action with this policy applied.
- Then(IResiliencePolicy)
Adds a policy as the innermost layer.
- Wrap(IResiliencePolicy)
Adds a policy as the outermost layer.