Share via


DurabilityProvider Class

Definition

The backend storage provider that provides the actual durability of Durable Functions. This is functionally a superset of DurableTask.Core.IOrchestrationService and DurableTask.Core.IOrchestrationServiceClient. If the storage provider does not any of the Durable Functions specific operations, they can use this class directly with the expectation that only those interfaces will be implemented. All of the Durable Functions specific methods/operations are virtual and can be overwritten by creating a subclass.

public class DurabilityProvider : DurableTask.Core.IOrchestrationService, DurableTask.Core.IOrchestrationServiceClient, DurableTask.Core.IOrchestrationServicePurgeClient, DurableTask.Core.Query.IOrchestrationServiceQueryClient
type DurabilityProvider = class
    interface IOrchestrationService
    interface IOrchestrationServiceClient
    interface IOrchestrationServiceQueryClient
    interface IOrchestrationServicePurgeClient
Public Class DurabilityProvider
Implements IOrchestrationService, IOrchestrationServiceClient, IOrchestrationServicePurgeClient, IOrchestrationServiceQueryClient
Inheritance
DurabilityProvider
Implements
DurableTask.Core.IOrchestrationService DurableTask.Core.IOrchestrationServiceClient DurableTask.Core.IOrchestrationServicePurgeClient DurableTask.Core.Query.IOrchestrationServiceQueryClient

Constructors

DurabilityProvider(String, IOrchestrationService, IOrchestrationServiceClient, String)

Creates the default DurabilityProvider.

Properties

ConfigurationJson

JSON representation of configuration to emit in telemetry.

ConnectionName

The name of the environment variable that contains connection details for how to connect to storage providers. Corresponds to the ConnectionName for binding data.

EventBehaviourForContinueAsNew DurableTask.Core.IOrchestrationService.EventBehaviourForContinueAsNew
EventSourceName

Event source name (e.g. DurableTask-AzureStorage).

GuaranteesOrderedDelivery

Specifies whether this backend delivers messages in order.

LongRunningTimerIntervalLength

Interval time used for long running timers.

MaxConcurrentTaskActivityWorkItems DurableTask.Core.IOrchestrationService.MaxConcurrentTaskActivityWorkItems
MaxConcurrentTaskOrchestrationWorkItems DurableTask.Core.IOrchestrationService.MaxConcurrentTaskOrchestrationWorkItems
MaximumDelayTime

Value of maximum durable timer delay. Used for long running durable timers.

SupportsEntities

Specifies whether the durability provider supports Durable Entities.

SupportsImplicitEntityDeletion

Specifies whether this backend supports implicit deletion of entities.

SupportsPollFreeWait

Specifies whether the backend's WaitForOrchestration is implemented without polling.

TaskActivityDispatcherCount DurableTask.Core.IOrchestrationService.TaskActivityDispatcherCount
TaskOrchestrationDispatcherCount DurableTask.Core.IOrchestrationService.TaskOrchestrationDispatcherCount

Methods

AbandonTaskActivityWorkItemAsync(TaskActivityWorkItem) DurableTask.Core.IOrchestrationService.AbandonTaskActivityWorkItemAsync(DurableTask.Core.TaskActivityWorkItem)
AbandonTaskOrchestrationWorkItemAsync(TaskOrchestrationWorkItem) DurableTask.Core.IOrchestrationService.AbandonTaskOrchestrationWorkItemAsync(DurableTask.Core.TaskOrchestrationWorkItem)
CompleteTaskActivityWorkItemAsync(TaskActivityWorkItem, TaskMessage) DurableTask.Core.IOrchestrationService.CompleteTaskActivityWorkItemAsync(DurableTask.Core.TaskActivityWorkItem,DurableTask.Core.TaskMessage)
CompleteTaskOrchestrationWorkItemAsync(TaskOrchestrationWorkItem, OrchestrationRuntimeState, IList<TaskMessage>, IList<TaskMessage>, IList<TaskMessage>, TaskMessage, OrchestrationState) DurableTask.Core.IOrchestrationService.CompleteTaskOrchestrationWorkItemAsync(DurableTask.Core.TaskOrchestrationWorkItem,DurableTask.Core.OrchestrationRuntimeState,System.Collections.Generic.IList{DurableTask.Core.TaskMessage},System.Collections.Generic.IList{DurableTask.Core.TaskMessage},System.Collections.Generic.IList{DurableTask.Core.TaskMessage},DurableTask.Core.TaskMessage,DurableTask.Core.OrchestrationState)
CreateAsync() DurableTask.Core.IOrchestrationService.CreateAsync
CreateAsync(Boolean) DurableTask.Core.IOrchestrationService.CreateAsync(System.Boolean)
CreateIfNotExistsAsync() DurableTask.Core.IOrchestrationService.CreateIfNotExistsAsync
CreateTaskOrchestrationAsync(TaskMessage) DurableTask.Core.IOrchestrationServiceClient.CreateTaskOrchestrationAsync(DurableTask.Core.TaskMessage)
CreateTaskOrchestrationAsync(TaskMessage, OrchestrationStatus[]) DurableTask.Core.IOrchestrationServiceClient.CreateTaskOrchestrationAsync(DurableTask.Core.TaskMessage,DurableTask.Core.OrchestrationStatus[])
DeleteAsync() DurableTask.Core.IOrchestrationService.DeleteAsync
DeleteAsync(Boolean) DurableTask.Core.IOrchestrationService.DeleteAsync(System.Boolean)
ForceTerminateTaskOrchestrationAsync(String, String) DurableTask.Core.IOrchestrationServiceClient.ForceTerminateTaskOrchestrationAsync(System.String,System.String)
GetAllOrchestrationStates(CancellationToken)

Gets the status of all orchestration instances.

GetAllOrchestrationStatesWithFilters(DateTime, Nullable<DateTime>, IEnumerable<OrchestrationRuntimeStatus>, CancellationToken)
Obsolete.

Gets the status of all orchestration instances within the specified parameters.

GetDelayInSecondsAfterOnFetchException(Exception) DurableTask.Core.IOrchestrationService.GetDelayInSecondsAfterOnFetchException(System.Exception)
GetDelayInSecondsAfterOnProcessException(Exception) DurableTask.Core.IOrchestrationService.GetDelayInSecondsAfterOnProcessException(System.Exception)
GetOrchestrationHistoryAsync(String, String) DurableTask.Core.IOrchestrationServiceClient.GetOrchestrationHistoryAsync(System.String,System.String)
GetOrchestrationStateAsync(String, Boolean) DurableTask.Core.IOrchestrationServiceClient.GetOrchestrationStateAsync(System.String,System.Boolean)
GetOrchestrationStateAsync(String, String) DurableTask.Core.IOrchestrationServiceClient.GetOrchestrationStateAsync(System.String,System.String)
GetOrchestrationStateWithInputsAsync(String, Boolean)

Gets the state of the specified orchestration instance.

GetOrchestrationStateWithPagination(OrchestrationStatusQueryCondition, CancellationToken)

Gets paginated result of all orchestration instances that match query status parameters.

IsMaxMessageCountExceeded(Int32, OrchestrationRuntimeState) DurableTask.Core.IOrchestrationService.IsMaxMessageCountExceeded(System.Int32,DurableTask.Core.OrchestrationRuntimeState)
LockNextTaskActivityWorkItem(TimeSpan, CancellationToken) DurableTask.Core.IOrchestrationService.LockNextTaskActivityWorkItem(System.TimeSpan,System.Threading.CancellationToken)
LockNextTaskOrchestrationWorkItemAsync(TimeSpan, CancellationToken) DurableTask.Core.IOrchestrationService.LockNextTaskOrchestrationWorkItemAsync(System.TimeSpan,System.Threading.CancellationToken)
MakeCurrentAppPrimaryAsync()

Makes the current app the primary app, if it isn't already. Must be using the AppLease feature.

PurgeHistoryByFilters(DateTime, Nullable<DateTime>, IEnumerable<OrchestrationStatus>)

Purges history that meet the required parameters.

PurgeInstanceHistoryByInstanceId(String)

Purges the instance history for the provided instance id.

PurgeOrchestrationHistoryAsync(DateTime, OrchestrationStateTimeRangeFilterType) DurableTask.Core.IOrchestrationServiceClient.PurgeOrchestrationHistoryAsync(System.DateTime,DurableTask.Core.OrchestrationStateTimeRangeFilterType)
ReleaseTaskOrchestrationWorkItemAsync(TaskOrchestrationWorkItem) DurableTask.Core.IOrchestrationService.ReleaseTaskOrchestrationWorkItemAsync(DurableTask.Core.TaskOrchestrationWorkItem)
RenewTaskActivityWorkItemLockAsync(TaskActivityWorkItem) DurableTask.Core.IOrchestrationService.RenewTaskActivityWorkItemLockAsync(DurableTask.Core.TaskActivityWorkItem)
RenewTaskOrchestrationWorkItemLockAsync(TaskOrchestrationWorkItem) DurableTask.Core.IOrchestrationService.RenewTaskOrchestrationWorkItemLockAsync(DurableTask.Core.TaskOrchestrationWorkItem)
ResumeTaskOrchestrationAsync(String, String)

Resume the specified orchestration instance with a reason.

RetrieveSerializedEntityState(EntityId, JsonSerializerSettings)

Retrieves the state for a serialized entity.

RewindAsync(String, String)

Rewinds the specified failed orchestration instance with a reason.

SendTaskOrchestrationMessageAsync(TaskMessage) DurableTask.Core.IOrchestrationServiceClient.SendTaskOrchestrationMessageAsync(DurableTask.Core.TaskMessage)
SendTaskOrchestrationMessageBatchAsync(TaskMessage[]) DurableTask.Core.IOrchestrationServiceClient.SendTaskOrchestrationMessageBatchAsync(DurableTask.Core.TaskMessage[])
StartAsync() DurableTask.Core.IOrchestrationService.StartAsync
StopAsync() DurableTask.Core.IOrchestrationService.StopAsync
StopAsync(Boolean) DurableTask.Core.IOrchestrationService.StopAsync(System.Boolean)
SuspendTaskOrchestrationAsync(String, String)

Suspend the specified orchestration instance with a reason.

TryGetScaleMonitor(String, String, String, String, IScaleMonitor)

Tries to obtain a scale monitor for autoscaling.

ValidateDelayTime(TimeSpan, String)

Uses durability provider specific logic to verify whether a timespan for a timer, timeout or retry interval is allowed by the provider.

WaitForOrchestrationAsync(String, String, TimeSpan, CancellationToken) DurableTask.Core.IOrchestrationServiceClient.WaitForOrchestrationAsync(System.String,System.String,System.TimeSpan,System.Threading.CancellationToken)

Explicit Interface Implementations

IOrchestrationServicePurgeClient.PurgeInstanceStateAsync(PurgeInstanceFilter) DurableTask.Core.IOrchestrationServicePurgeClient.PurgeInstanceStateAsync(DurableTask.Core.PurgeInstanceFilter)
IOrchestrationServicePurgeClient.PurgeInstanceStateAsync(String) DurableTask.Core.IOrchestrationServicePurgeClient.PurgeInstanceStateAsync(System.String)
IOrchestrationServiceQueryClient.GetOrchestrationWithQueryAsync(OrchestrationQuery, CancellationToken) DurableTask.Core.Query.IOrchestrationServiceQueryClient.GetOrchestrationWithQueryAsync(DurableTask.Core.Query.OrchestrationQuery,System.Threading.CancellationToken)

Applies to