#3144·sanic

支持多端口的异步模式

作者: rudyvan创建于 2026年2月24日更新于 2026年2月24日
标签RFC

QQ 链接到代码

无回复( N)

建议

以 async 为例, 提供了用于单一应用模式的工程( 用于 return async server 已过时的最新发布时的语法修改) :

zz
导入 Ayncio

导入 uvloop

从 sanic 导入 Sanic, 回复

app = sanic ("实例") (中文(简体) ).

@app.route ("/") (中文(简体) ).
async def 测试( 请求) :
返回回复.json({"回答":"42")

async def 主线( ):
服务器 = 等待 app.create  server ()
端口=8000,主机为"0.0.0.0").

如果服务器为无 :
返回时

等待服务器. sartup ()
等待服务器. serve 永远()

如果... 名字... "... main...":
ayncio.set event loop(uvloop. new event loop()) 互联网档案馆的存檔,存档日期2013-12-21.
ayncio.run(主要())

如何使这个工作 对于一个你必须服务 多个端口的情况? 仅主( ) 必须更改 :

[Python] async def 主线( ): 服务器1 = 等待 app.create server(端口=8000,主机="0.0.0.0") 服务器2 = 等待 app.create server(端口=8080,主机="0.0.0.0") .

如果有的话( 在 [server1, server2] 中服务器没有服务器) : 返回时

等待 asyncio.gather( *[ server1. startup (), server2. startup ()] 等待服务器2. serve 永远()


上面的代码不起作用, 或任何其他组合。
启动2 Aync 服务器的正确办法是什么?
能否更新2个端口的示例?

其他背景

无回复( N)

这是突破性的改变吗?

- [ 对

内容来源: sanic-org/sanic