以gevent(协程) 方式跑uwsgi服务

当你的系统存在一些IO或网络请求较久的操作时, 如果以默认的方式启动uwsgi服务,
那么如果这类请求过多的时候, 所以进程被卡死. uwsgi就无法再对后续请求做处理了.

这时可以用gevent的方式跑起uwsgi服务, 这样当某个请求在IO或网络请求中时, uwsgi进程可以去处理其他的请求.

如果环境没装gevent的话需要先安装gevent:

pip install gevent

启动方式:

uwsgi --gevent 100 --gevent-early-monkey-patch uwsgi.ini 

顺便把uwsgi文件的配置也放出来下:

[uwsgi]

base = path
chdir = path

wsgi-file = manage.py
callable = app

pidfile = project_pid
master = true
processes = 4

socket = 0.0.0.0:8080
# http = 0.0.0.0:8080
vacuum = true
buffer-size = 32768
listen = 1024

# log-reopen = true # daemonize = %(base)/logs/project.log 

supervisor配置如下:

[program:project]
process_name=%(program_name)s
command=/home/ubuntu/.virtualenvs/project/bin/uwsgi --gevent 100 --gevent-early-monkey-patch /var/www/prod/project/uwsgi.ini autostart=true autorestart=true stopsignal=QUIT user=root numprocs=1 redirect_stderr = true stdout_logfile=/var/log/python/project.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=5 
 
 

转载于:https://www.cnblogs.com/ExMan/p/10403993.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值