提供三重奏支持的四重奏分机。

Quart-Trio的Python项目详细描述


Build Statuspypipythonlicense

quart trio是Quart的扩展,用于支持Trio事件循环。这是一个 使用python中的asyncio事件循环的替代方法 标准库,在quart中默认支持。

用法

要启用trio支持,只需使用QuartTrioapp类 而不是Quartapp类,

fromquart_trioimportQuartTrioapp=QuartTrio(__name__)@app.route('/')asyncdefindex():awaittrio.sleep(0.01)asyncwithtrio.open_nurseryasnursery:nursery.start_soon(...)return...

使用Quart Trio的一个更具体的例子 演示下面给出的trio api的清晰性。这个例子 演示使用服务器向所有聊天服务器进行简单广播 启动心跳。

app=QuartTrio(__name__)connections=set()asyncdefws_receive():whileTrue:data=awaitwebsocket.receive()forconnectioninconnections:awaitconnection.send(data)asyncdefws_send():whileTrue:awaittrio.sleep(1)awaitwebsocket.send("Heatbeat")@app.websocket('/ws')asyncdefws():connections.add(websocket._get_current_object())asyncwithtrio.open_nursery()asnursery:nursery.start_soon(ws_receive)nursery.start_soon(ws_send)connections.remove(websocket._get_current_object())

背景任务

要在三人组中开始任务,您需要一个托儿所,对于后台任务,您需要 需要一个在请求完成后存在的苗圃。在 夸脱三重奏,这个苗圃存在于应用程序,

@app.route("/")asyncdeftrigger_job():app.nursery.start_soon(background_task)return"Started",201

多个错误

在处理请求或WebSocket期间引发的多个错误是 捕获并对照处理程序检查包含的异常, 将返回第一个处理的异常。这可能会导致 不确定的代码,因为它将取决于引发的错误 首先(在可以处理多个错误的情况下)。

展开

要在生产环境中运行quart trio,您应该使用一个asgi服务器 支持三人组。目前只有Hypercorn这样做。

贡献

四重奏是在GitLab上发展起来的。很欢迎你来 打开issues或 提议merge requests

测试

测试夸脱三重奏的最佳方法是使用毒性物质,

$ pip install tox
$ tox

这将检查代码样式并运行测试。

帮助

这个自述文件是最好的开始,然后尝试打开 issue

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓 studio中使用调用jaxws web服务的jar文件   java双时间模拟时钟不打印两个不同的时间   java Jackson反序列化处理不带字段的生成值   多线程在java同步中读锁的目的是什么   为什么java中有这么多获取日期时间的方法?   java从listview中的TextView获取数据   java是否可以定义如何对枚举进行(反)序列化以在枚举内持久化?   Java:异常处理我的catch()有问题   VMWare java SDK:可用的PerfMetricID何时不报告数据?   exec在Java中执行命令而不重定向输出   java使用SpringXML配置实现观察者模式?   java在竹笔平板电脑中使用JPen