Add streaming backpressure
还没有人认领这个 Issue。
评估
调研方向
该 issue 没有指出任何文件或测试。首先跟踪 Quart 对异步流的代理处理,并复现消费者缓慢、上传快速的场景;完成的标准是,大型代理 payload 能够施加 backpressure,而不会发生无界缓冲或因 out-of-memory 而终止。
由索引模型根据 Issue 内容生成。
描述
Some more context when this is relevant.
flowchart LR
httpx-->|slow network| server
subgraph one[Host 1]
client-->|localhost\nconnection| quart
subgraph quart[Quart app]
httpx[httpx async\nclient]
end
end
subgraph two[Host 2]
server
end
In this configuration, the Quart app acts as a proxy. As the httpx client is slowly consuming data because of the network speed, Quart buffers incoming data which is being uploaded at a very high speed because of a localhost connection. For huge payloads, this results in either memory allocation errors, or the out-of-memory killer killing the app.
^ From @andrewsh
- 主要语言
- Python
- 星标
- 3.7k
- 派生
- 206
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pallets/quart 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 92/100
-
难度 1/5 1 小时以内 新手友好度 68/100
-
难度 3/5 1-2 天 新手友好度 42/100
-
难度 3/5 1-2 天 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
pydanty:is-working
难度 2/5 1-3 小时 新手友好度 78/100
pydantic/pydantic-ai#8843 ·
维护者通常 1 天内回复
-
breaking change enhancement server
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
needs-triage
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复