Support Graceful Termination of Orchestrations and Activities using CancellationToken
- Vorherrschende Sprache
- C#
- Sterne
- 1.7k
- Forks
- 335
- Ø Merge
- 2 T. 23 Std.
- Gemergte PRs (30 T.)
- 6
Beschreibung
Similar to #565 , it would be greate if TaskActivities/TaskOrchestrations could be dispatched with a developer-provided cancellation token.
For example, if we could provide a cancellation token as part of `StartAsync` on a single worker node, that can be propagated to dispatched orchestrations/activities to allow developers have more control over termination of running activities/orchestrations.
```c#
taskHubWorker.StartAsync(cancellationToken);
```
An example use case would be interface activities:
```c#
public interface IInterfaceTask
{
Task WorkAsync(CancellationToken cancellationToken);
}
public class Orchestration : TaskOrchestration
{
public Task RunTask(OrchestrationContext context, bool input)
{
var interfaceTask = context.CreateClient();
await interfaceTask.WorkAsync(context.CancellationToken);
}
}
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie am Einstiegspunkt TaskHubWorker.StartAsync(cancellationToken) und verfolgen Sie, wie TaskActivities und TaskOrchestrations verteilt werden. Prüfen Sie die zugehörige Diskussion in #565 und bestimmen Sie, wie das vom Entwickler bereitgestellte Token context.CancellationToken erreichen soll. Als abgeschlossen gilt die Aufgabe, wenn laufende Aktivitäten und Orchestrierungen das Token beobachten und ordnungsgemäß beendet werden können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- distributed-systems
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100