Table of Contents

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.