赞
踩
- [program:flask_main]
- directory=/root/youproject ; 非常重要,选择在那个目录下执行命令
- command=/usr/local/Anaconda3/envs/youproject/bin/python -u flask_main.py ; command这里的gunicorn一定是你程序运行的python环境【如果虚拟环境就必须选择虚拟环境下面的路径】
- autostart = true ; 在 supervisord 启动的时候也自动启动
- autorestart = true ; 程序异常退出后自动重启
- startsecs = 3 ; 启动 3 秒后没有异常退出,就当作已经正常启动了
- startretries = 3 ; 启动失败自动重试次数,默认是 3
- redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
- user=root
- loglevel=info
- ; 这一配置项的作用是:如果supervisord管理的进程px又产生了若干子进程,使用supervisorctl停止px进程,停止信号会传播给px产生的所有子进程,确保子进程也一起停止。这一配置项对希望停止所有进> 程的需求是非常有用的。
- stopasgroup=true
- [supervisord] ; 必须配置
- [supervisorctl] ; 必须配置
- [program:flask_main]
- directory=/root/youproject; 非常重要,选择在那个目录下执行命令
- command=/usr/local/Anaconda3/envs/youproject/bin/gunicorn -c other_config/gunicorn.py flask_main:app ; command这里的gunicorn一定是你程序运行的python环境【如果虚拟环境就必须选择虚拟环境下面的路径】
- autostart = true ; 在 supervisord 启动的时候也自动启动
- autorestart = true ; 程序异常退出后自动重启
- startsecs = 3 ; 启动 3 秒后没有异常退出,就当作已经正常启动了
- startretries = 3 ; 启动失败自动重试次数,默认是 3
- redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
- user=root
- loglevel=info
- stopasgroup=true
- [supervisord] ; 必须配置
- [supervisorctl] ; 必须配置
- # gunicorn+gevent启动Flask服务器的配置文件【gevent兼容配置websocket】
-
- import multiprocessing
- import gevent.monkey
-
- # 【使用gevent启动默认都会执行此方法】运行启动添加猴子补丁
- gevent.monkey.patch_all()
-
- debug = True
- loglevel = "debug"
- bind = "0.0.0.0:8099"
- workers = multiprocessing.cpu_count() * 2 + 1
- chdir = "/root/flaskBlockChainGamble"
- backlog = 2048
- worker_class = "geventwebsocket.gunicorn.workers.GeventWebSocketWorker"
- worker_connections = 1000
- # 是否开启后台启动【True开启】----如果使用supervisor监控不能开启【只能前端运行】
- daemon = False
-
- # gunicorn -c other_config/gunicorn.py flask_main:app

- """
- 功能:基于【gunicorn+gevent的linux运行服务器】gevent兼容websocket,且性能最佳!
- 特殊说明:
- 1、gevent默认是单线程运行【可使用Python运行,相互请求之间是同步阻塞】
- 2、gevent必须结合gunicorn运行,开启并发模式【不同请求之间相互独立】,且性能非常给力!
- 3、gevent是否开启debug模式,请在gunicorn的配置文件下配置debug属性!
- """
- from gevent import pywsgi
- from geventwebsocket.handler import WebSocketHandler
- server = pywsgi.WSGIServer(
- ('0.0.0.0', 8099), app, handler_class=WebSocketHandler)
- server.serve_forever()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。