没有项目描述
flask-batch的Python项目详细描述
烧瓶批次
在http层批处理多个请求。烧瓶批次由 how google cloud storage does batching。
它将/batch路由添加到可以执行批处理http的api 针对API服务器端的请求。客户端包装了几个请求 在单个请求中使用multipart/mixed内容类型。
安装
pip install Flask-Batch # to include the dependencies for the batching client pip install Flask-Batch[client]
开始
服务器
fromflaskimportFlaskfromflask_batchimportadd_batch_routeapp=Flask(__name__)add_batch_route(app)# that's it!
客户
客户端包装请求会话。
fromflask_batch.clientimportBatchingimportjsonalice_data=bob_data={"example":"json"}withBatching("http://localhost:5000/batch")ass:alice=s.patch("/people/alice/",json=alice_data)bob=s.patch("/people/bob/",json=bob_data)alice# <Response [200]>alice.json()# {"response": "json"}
为什么成批?
从客户端到服务器的往返时间通常很长。配料 请求减少了高RTT的惩罚,而不增加复杂性。 请求并行化。
正确完成批处理
通常,api设计器会为特定的 操作。创建用于执行批量操作的自定义API终结点 通常最后会变得笨重。每一个都是独一无二的。这意味着更多 要维护的代码,以及更多的错误。
很难对大容量json api端点进行推理。为了 例如,出错时会发生什么情况?批量操作是否失败?继续? 退后?
在http层进行批处理会产生清晰且预期的行为 很容易推理。http批处理的行为与 批处理中发送的所有单个请求。
状态
此项目位于alpha中。我希望最终能得到批准 作为烧瓶的延伸。