Support Graceful Termination of Orchestrations and Activities using CancellationToken
- Lingua principale
- C#
- Stelle
- 1.7k
- Fork
- 335
- Merge medio
- 2g 23h
- PR unite (30g)
- 6
Descrizione
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);
}
}
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia dal punto di ingresso TaskHubWorker.StartAsync(cancellationToken) e segui come vengono distribuiti TaskActivities e TaskOrchestrations. Esamina la discussione correlata in #565 e determina come il token fornito dallo sviluppatore debba raggiungere context.CancellationToken. Il lavoro è completato quando le attività e le orchestrazioni in esecuzione possono osservare il token e terminare correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- distributed-systems
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100