Table of Contents

Class OutboxOptions

Namespace
Xapi.Client.Outbox
Assembly
Xapi.Client.Outbox.dll

Settings for StatementOutbox. The outbox copies them when it is created.

public sealed class OutboxOptions
Inheritance
OutboxOptions
Inherited Members

Properties

BatchSize

The largest number of Statements sent in one request. Defaults to 50.

public int BatchSize { get; set; }

Property Value

int

Remarks

The outbox lowers it on its own, for its lifetime, when the LRS answers 413 Content Too Large.

InitialRetryDelay

The delay after the first transient failure. Defaults to 2 seconds.

public TimeSpan InitialRetryDelay { get; set; }

Property Value

TimeSpan

Remarks

After the n-th failure in a row the outbox waits a random time between half of and all of InitialRetryDelay × 2^(n−1), at most MaxRetryDelay. When the LRS sends a longer Retry-After, the outbox waits that long instead, even beyond MaxRetryDelay.

MaxAttempts

How many transient failures a Statement may have before it is moved to the dead letters with MaxAttemptsExceeded, or null (the default) to retry transient errors for ever.

public int? MaxAttempts { get; set; }

Property Value

int?

Remarks

Only the Statements of the request that failed are counted, so during a long outage the oldest Statements run out of attempts first. Leave it unset for offline use.

MaxQueueSize

The largest number of Statements that may wait in the outbox, or null for no limit. Defaults to 100,000. When it is reached, EnqueueAsync(Statement, CancellationToken) throws OutboxFullException; nothing already queued is dropped. Dead letters do not count.

public int? MaxQueueSize { get; set; }

Property Value

int?

MaxRetryDelay

The longest delay between retries, before jitter. Defaults to 5 minutes.

public TimeSpan MaxRetryDelay { get; set; }

Property Value

TimeSpan

TimeProvider

The clock and timers the outbox uses. Defaults to System.

public TimeProvider TimeProvider { get; set; }

Property Value

TimeProvider