美文网首页模型部署
以gevent(协程) 方式跑uwsgi服务

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

作者: chenhjj | 来源:发表于2018-08-16 14:48 被阅读0次

当你的系统存在一些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

相关文章

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

    当你的系统存在一些IO或网络请求较久的操作时, 如果以默认的方式启动uwsgi服务,那么如果这类请求过多的时候, ...

  • 并发编程-协程

    协程greenlet模块 (gevent实现原理)gevent模块 (注册协程,实现异步编程) 协程的应用eg:...

  • Python 高级 7

    迭代、迭代器、生成器、协程、yield、greenlet、gevent、进程线程协程对比、gevent多任务图片下...

  • 如何分析tornado源码和调试跟踪

    “协程”“异步”“一个tornado可以并发处理几万长连接”“tornado和gevent是两种不同的协程方式” ...

  • 协程

    gevent方法实现多任务(协程) 了解yield和grenlet yield方法创建协程 greenlet方法创建协程

  • Python并发编程——协程

    摘要:Python,协程,gevent 协程基本概念 协程,又称微线程,纤程。英文名Coroutine,是Pyth...

  • python爬虫11:gevent queue

    同步和异步的概念 异步:gevent库 多协程,是非抢占式的异步方法,使用多协程,能让多个爬虫用异步方式交替执行多...

  • 协程(gevent)

    概念 协程是程序(软件)控制的可以实现多线程效果的方法.线程是由CPU控制的高并发方法. 协程,gevent,gr...

  • 协程-gevent

    gevent greenlet已经实现了协程,但是这个还的人工切换,是不是觉得太麻烦了,不要捉急,python还有...

  • queue队列中的进程和线程

    协程 from gevent import monkeyimport geventmonkey.patch_all...

网友评论

    本文标题:以gevent(协程) 方式跑uwsgi服务

    本文链接:https://www.haomeiwen.com/subject/sbxobftx.html