microsoft / microsoft/durabletask-python
Composite tasks do not notify parent composites
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 40
- Forks
- 33
- Merge moyen
- 2 j 2 h
- PR mergées (30 j)
- 6
Description
WhenAllTask and WhenAnyTask mark themselves complete, but do not notify their parent composite.
This means the following orchestration does not resume when all activities complete:
all_task = task.when_all(activity_tasks)
winner = yield task.when_any([cancel_task, all_task])
A current workaround is to wait for each leaf task with repeated when_any calls. The workaround preserves cancellation, but Durable Task Scheduler no longer shows the standard Fan-out group.
Could composite completion propagate to the parent in the same way that CompletableTask.complete() does?
A regression test can compose when_any([cancel, when_all([a, b])]), complete a and b, and verify that the outer task completes with the inner when_all task.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par lire WhenAllTask et WhenAnyTask, puis comparez leur comportement lors de l’achèvement avec CompletableTask.complete(). Ajoutez le test de régression décrit dans l’issue pour when_any([cancel, when_all([a, b])]) ; « done » signifie que l’achèvement de a et b entraîne l’achèvement de la tâche externe avec la tâche when_all interne.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- distributed-systems
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 72/100