Skip to content

Commit 010e60a

Browse files
author
vp
committed
doc: Add execution options section to pipelines feature documentation
1 parent c80d530 commit 010e60a

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

docs/features-pipelines.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,43 @@ var handle = await pipeline.ExecuteAndForgetAsync(
286286
var snapshot = await tracker.GetAsync(handle.ExecutionId);
287287
```
288288

289+
### Execution Options
290+
291+
Pipeline execution can be configured per run through `PipelineExecutionOptions` or the fluent
292+
options builder passed to `ExecuteAsync(...)` and `ExecuteAndForgetAsync(...)`.
293+
294+
The main options are:
295+
296+
- `ContinueOnFailure()`
297+
Allows later steps to continue even when the carried `Result` is already failed.
298+
- `MaxRetryAttemptsPerStep(int value)`
299+
Controls how many times a step may return `Retry(...)` before the runtime stops and marks the
300+
execution as failed.
301+
- `WithProgress(IProgress<ProgressReport>)`
302+
Exposes a progress reporter to steps through `options.Progress`, so step implementations can
303+
report their own progress.
304+
- `AccumulateDiagnosticsOnFailure(bool value = true)`
305+
Controls whether messages and errors are preserved when execution stops because of failure.
306+
- `AccumulateDiagnosticsOnBreak(bool value = true)`
307+
Controls whether messages and errors are preserved when execution stops because of a `Break(...)`
308+
outcome.
309+
- `WhenCompleted(Func<PipelineCompletion, ValueTask>)`
310+
Registers a completion callback for fire-and-forget execution after the tracked snapshot has been
311+
finalized.
312+
313+
Example:
314+
315+
```csharp
316+
var result = await pipeline.ExecuteAsync(
317+
context,
318+
options => options
319+
.ContinueOnFailure()
320+
.MaxRetryAttemptsPerStep(5)
321+
.AccumulateDiagnosticsOnFailure()
322+
.WithProgress(new Progress<ProgressReport>(report =>
323+
Console.WriteLine($"{report.Operation}: {report.PercentageComplete}%"))));
324+
```
325+
289326
### Runtime Execution Flow
290327

291328
```mermaid

0 commit comments

Comments
 (0)