microsoft / microsoft/durabletask-python

Composite tasks do not notify parent composites

Offen
#266 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.