阿吉的Sanic教程--21开发模式

21. 开发模式

你的鼓励是我前进的动力,请为我点个赞吧!
(1)开发模式

Sanic的开发模式基于内置的websocket,通过创建sanic.Sanic的实例,我们可以传递以下参数进行配置:

选项说明
host服务主机地址(默认值127.0.0.1)
port端口(默认值8000)
debug是否打开调试模式(默认值:False)
sslssl上下文
sock服务器允许接受的的地址
workers用户异步的进行数量
loop用于创建的循环事件
protocol协议,为asynico.protocol的子类
access_log是否开启日志处理功能

(2)运行数量控制

默认情况下Sanic使用主进行监听CPU的数量,如果想要提高执行效率只需要在app.run()中指定worker的参数即可,具体如下所示:

app.run(host='0.0.0.0', port=1337, workers=4)

Sanic将会自动调整进行的执行,建议根据电脑的核数调整workers的数量,最好是让二者相等。

(3)通过命令行运行

Sanic为开发者提供了命令行的启动方式例如:

python -m sanic server.app --host=0.0.0.0 --port=1337 --workers=4

(4)通过Gunicorn运行

Gunicorn是wsgi的在linux上的服务,

unicorn myapp:app --bind 0.0.0.0:1337 --worker-class sanic.worker.GunicornWorker

(5)禁用调试模式的日志功能

一般为了提高性能要禁用一些功能,如调试,登录日志。

app.run(host='0.0.0.0', port=1337, workers=4, debug=False, access_log=False)

使用Gunicorn启动:

env SANIC_ACCESS_LOG="False" gunicorn myapp:app --bind 0.0.0.0:1337 --worker-class sanic.worker.GunicornWorker --log-level warning

或者直接关闭日志功能:

app.config.ACCESS_LOG = False

(6)异步模式

开发者可能使用很多应用,要注意loop的使用。这个方法不支持很多进程,运城app没有足够的优势。下面给出一个完成的示例:

server = app.create_server(host="0.0.0.0", port=8000)
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(server)
loop.run_forever()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值