Table of Contents

Class WorkerProcessingRetryOptions

Namespace
Virtufin.WorkManager.Configuration
Assembly
Virtufin.WorkManager.dll

Tunable knobs for WorkerProcessingRetryPipeline: the Polly-based retry wrapping worker.ProcessAsync in WorkManager.ProcessCloudEventAsync.

Deliberately separate from DaprResilienceOptions even though the defaults happen to match: that class scopes Dapr infra call retries (state store, pubsub RPCs), this one scopes worker business-logic processing failures -- restoring the pubsub-topics spec's "Retry Policy on Dapr Subscribe Exceptions" bounded-retry-then-dead-letter guarantee, which the streaming Pubsub.Subscribe migration moved from Dapr's broker-level redelivery to WorkManager's own application-level responsibility (broker redelivery is architecturally inapplicable once a message is inside the Gateway's multi-consumer fan-out -- see spec's "In-process exception on a subscriber" requirement).

public sealed record WorkerProcessingRetryOptions : IEquatable<WorkerProcessingRetryOptions>
Inheritance
WorkerProcessingRetryOptions
Implements
Inherited Members

Fields

DefaultRetryAttempts

Default retry attempts -- matches the pubsub-topics spec's maxRedeliveryCount default of 3.

public const int DefaultRetryAttempts = 3

Field Value

int

DefaultRetryBaseDelayMs

Default retry base delay in ms.

public const int DefaultRetryBaseDelayMs = 200

Field Value

int

RetryAttemptsEnvVar

Env var for RetryAttempts.

public const string RetryAttemptsEnvVar = "WORKER_RETRY_ATTEMPTS"

Field Value

string

RetryBaseDelayMsEnvVar

Env var for RetryBaseDelayMs.

public const string RetryBaseDelayMsEnvVar = "WORKER_RETRY_BASE_DELAY_MS"

Field Value

string

Properties

RetryAttempts

Number of retry attempts (Polly MaxRetryAttempts) before the message is dead-lettered.

public int RetryAttempts { get; init; }

Property Value

int

RetryBaseDelayMs

Base delay between attempts; actual delay is RetryBaseDelayMs * 2^attempt.

public int RetryBaseDelayMs { get; init; }

Property Value

int

Methods

FromEnvironment(Func<string, string?>)

public static WorkerProcessingRetryOptions FromEnvironment(Func<string, string?> getEnvironment)

Parameters

getEnvironment Func<string, string>

Returns

WorkerProcessingRetryOptions