Skip to content

Commit

Permalink
rev to DTFx.AS 1.17.5
Browse files Browse the repository at this point in the history
  • Loading branch information
davidmrdavid committed Sep 16, 2024
1 parent c8a719f commit 18b53bd
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ internal AzureStorageOrchestrationServiceSettings GetAzureStorageOrchestrationSe
UseSeparateQueueForEntityWorkItems = this.useSeparateQueueForEntityWorkItems,
EntityMessageReorderWindowInMinutes = this.options.EntityMessageReorderWindowInMinutes,
MaxEntityOperationBatchSize = this.options.MaxEntityOperationBatchSize,
AllowReplayingTerminalInstances = this.azureStorageOptions.AllowReplayingTerminalInstances,
};

if (this.inConsumption)
Expand Down
14 changes: 14 additions & 0 deletions src/WebJobs.Extensions.DurableTask/Options/AzureStorageOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,20 @@ public string TrackingStoreConnectionStringName
/// <value>A boolean indicating whether to use the table partition strategy. Defaults to false.</value>
public bool UseTablePartitionManagement { get; set; } = false;

/// <summary>
/// When false, when an orchestrator is in a terminal state (e.g. Completed, Failed, Terminated), events for that orchestrator are discarded.
/// Otherwise, events for a terminal orchestrator induce a replay. This may be used to recompute the state of the orchestrator in the "Instances Table".
/// </summary>
/// <remarks>
/// Transactions across Azure Tables are not possible, so we independently update the "History table" and then the "Instances table"
/// to set the state of the orchestrator.
/// If a crash were to occur between these two updates, the state of the orchestrator in the "Instances table" would be incorrect.
/// By setting this configuration to true, you can recover from these inconsistencies by forcing a replay of the orchestrator in response
/// to a client event like a termination request or an external event, which gives the framework another opportunity to update the state of
/// the orchestrator in the "Instances table". To force a replay after enabling this configuration, just send any external event to the affected instanceId.
/// </remarks>
public bool AllowReplayingTerminalInstances { get; set; } = false;

/// <summary>
/// Throws an exception if the provided hub name violates any naming conventions for the storage provider.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
<!-- Common dependencies across all targets -->
<ItemGroup>
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.17.1" />
<PackageReference Include="Microsoft.Azure.DurableTask.AzureStorage" Version="1.17.4" />
<PackageReference Include="Microsoft.Azure.DurableTask.AzureStorage" Version="1.17.5" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers" Version="0.5.*" />
<!-- Build-time dependencies -->
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.*" PrivateAssets="All" />
Expand Down

0 comments on commit 18b53bd

Please sign in to comment.