gpt4 book ai didi

socket.io - gevent-socketio + Flask + Gunicorn

转载 作者:行者123 更新时间:2023-12-02 19:05:17 24 4
gpt4 key购买 nike

我可以将 gevent-socketio 与 Flask 一起使用,在 Gunicorn 下运行,并且仍然享受 Flask 提供的出色的异常打印、调试器和重新加载功能吗?我的 Gunicorn Worker 和 WSGI 应用程序类会是什么样子?

最佳答案

我遇到了完全相同的问题,所以我通过使用看门狗解决了它。

pip install watchdog

与此命令一起:

watchmedo shell-command --patterns="*.py*;;*.less;*.css;*.js;*.txt;*.html" --recursive --command='kill -HUP `cat /tmp/gunicorn.pid` && echo "Reloading code" >> /tmp/gunicorn.log' ~/projectfolder

它要求(嗯,不是真的,但我将“重新加载代码”指向同一个日志文件,所以这是一件好事)您守护gunicorn进程,我喜欢这样:

gunicorn_config.py

workers = 2
worker_class = 'socketio.sgunicorn.GeventSocketIOWorker'
bind = '0.0.0.0:5000'
pidfile = '/tmp/gunicorn.pid'
debug = True
loglevel = 'debug'
errorlog = '/tmp/gunicorn.log'
daemon = True

启动应用程序:

gunicorn run:app -c gunicorn-config.py

查看日志:

tail -f /tmp/gunicorn.log

从此时起,项目中的每次更改都应该重新加载所有内容。这有点复杂,但由于带有工作线程的gunicorn(或内置的socketio服务器)没有任何重新加载功能,我不得不这样做。

与其他答案中的装饰器解决方案相比,这是一种不同的方法,但我喜欢保持实际代码与开发特定解决方案的简洁。两者都完成相同的任务,所以我想您只需选择您喜欢的解决方案即可。 :)

哦,作为额外的好处,您可以在开发中使用生产服务器,这意味着两个环境相互匹配。

关于socket.io - gevent-socketio + Flask + Gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com