microsoft / microsoft/durabletask-python

Composite tasks do not notify parent composites

未关闭
#266 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Python
星标
40
派生
33
平均合并
2 天 2 小时
30 天内合并 PR
6

描述

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.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

先阅读 WhenAllTask 和 WhenAnyTask,然后将它们的完成行为与 CompletableTask.complete() 进行比较。为 issue 中描述的 when_any([cancel, when_all([a, b])]) 添加回归测试;done 表示完成 a 和 b 会使外部 task 与内部的 when_all task 一起完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
distributed-systems
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
72/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。