sanic 异步同步问题

https://www.yuanrenxue.com/sanic/sanic-extension.html

Sanic-Plugins-Framework:轻松创建和使用Sanic插件的库。

Limiter:为sanic添加频率限制。

sanic-prometheus:Sanic的Prometheus指标。sanic-zipkin:通过aiozipkin轻松向zipkin / jaeger报告请求/功能/ RPC跟踪。

https://www.yuanrenxue.com/sanic/sanic-start.html

https://sanic.readthedocs.io/en/latest/sanic/asyncio_python37.html

我觉得后台任务没问题

https://sanic.readthedocs.io/en/latest/sanic/middleware.html

如果您希望安排后台任务在循环开始后运行,则Sanic提供了add_task方法可以轻松地做到这一点。async def notify_server_started_after_five_seconds():
await asyncio.sleep(5)
print(‘Server successfully started!’)

app.add_task(notify_server_started_after_five_seconds())

sanic的loop和asyncio的loop到底是不是同一个loop

import asyncioimport socketimport os

from sanic import Sanicfrom sanic.response import json

app = Sanic(name)

@app.route("/")async def test(request):
return json({“hello”: “world”})

server_socket = ‘/tmp/sanic.sock’

sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

try:
os.remove(server_socket)finally:
sock.bind(server_socket)

if name == “main”:
loop = asyncio.get_event_loop()
srv_coro = app.create_server(
sock=sock,
return_asyncio_server=True,
asyncio_server_kwargs=dict(
start_serving=False
)
)
srv = loop.run_until_complete(srv_coro)
try:
assert srv.is_serving() is False
loop.run_until_complete(srv.start_serving())
assert srv.is_serving() is True
loop.run_until_complete(srv.serve_forever())
except KeyboardInterrupt:
srv.close()
loop.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值