Skip to main content

未提供项目描述

项目描述

烧瓶批次

Travis CI 构建状态 GitHub 许可证 最新版本

在 http 层批处理多个请求。Flask-Batch 受到 谷歌云存储如何进行批处理的启发。

它将/batch路由添加到您的 API,该路由可以针对您的 API 服务器端执行批量 HTTP 请求。客户端使用multipart/mixed内容类型将多个请求包装在一个请求中。

安装

pip install Flask-Batch

# to include the dependencies for the batching client
pip install Flask-Batch[client]

入门

服务器

from flask import Flask
from flask_batch import add_batch_route

app = Flask(__name__)
add_batch_route(app)

# that's it!

客户

客户端包装请求会话。

from flask_batch.client import Batching
import json

alice_data = bob_data = {"example": "json"}

with Batching("http://localhost:5000/batch") as s:
    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 阶段。我希望最终将它作为烧瓶扩展获得批准。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Flask-Batch-0.0.2.tar.gz (7.9 kB 查看哈希

已上传 source