microsoft / microsoft/durabletask-python
Composite tasks do not notify parent composites
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 40
- Forks
- 33
- Ø Merge
- 2 T. 2 Std.
- Gemergte PRs (30 T.)
- 6
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem Lesen von WhenAllTask und WhenAnyTask und vergleiche anschließend ihr Abschlussverhalten mit CompletableTask.complete(). Füge den im Issue beschriebenen Regressionstest für when_any([cancel, when_all([a, b])]) hinzu; „done“ bedeutet, dass der Abschluss von a und b dazu führt, dass der äußere Task mit dem inneren when_all-Task abgeschlossen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- distributed-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 72/100