以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
以gevent(协程) 方式跑uwsgi服务的更多相关文章
- python2.0_s12_day9_协程&Gevent协程
Python之路,Day9 - 异步IO\数据库\队列\缓存 本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 协程 1.协程,又 ...
- Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发)
Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就 ...
- 什么是协程?与线程和进程对比优劣在哪?gevent协程示例代码
协程 协程,又称微线程,纤程.英文名Coroutine..一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在 ...
- Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)
一.进程: 1.语法 2.进程间通讯 3.进程池 二.Gevent协程 三.Select\Poll\Epoll异步IO与事件驱动 一.进程: 1.语法 简单的启动线程语法 def run(name): ...
- python_协程方式操作数据库
# !/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...
- python并发编程之gevent协程(四)
协程的含义就不再提,在py2和py3的早期版本中,python协程的主流实现方法是使用gevent模块.由于协程对于操作系统是无感知的,所以其切换需要程序员自己去完成. 系列文章 python并发编程 ...
- Python中Paramiko协程方式详解
什么是协程 协程我们可以看做是一种用户空间的线程. 操作系统对齐存在一无所知,需要用户自己去调度. 比如说进程,线程操作系统都是知道它们存在的.协程的话是用户空间的线程,操作系统是不知道的. 为什么要 ...
- gevent协程、select IO多路复用、socketserver模块 改造多用户FTP程序例子
原多线程版FTP程序:http://www.cnblogs.com/linzetong/p/8290378.html 只需要在原来的代码基础上稍作修改: 一.gevent协程版本 1. 导入geven ...
- 【python】gevent协程例子
说在前面:用协程还是多线程需要仔细考量.我在做实验时请求了100w个ip,分别用pool为1000的协程和64个线程来跑,结果是多线程的速度是协程的10倍以上. 一个简单的协程例子 #!/usr/bi ...
随机推荐
- 解决Tomcat加载时报APR错的问题
部署Tomcat的时候出现了如下错误, INFO: The APR based Apache Tomcat Native library which allows optimal performanc ...
- 阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合《XXX重大技术需求征集系统》,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的观点。
这三章主要讲述的是网站的可用性.伸缩性和可扩展性. 首先,网站的可用性描述网站可有效访问的特性,相比于网站的其他非功能特性,网站的可用性更容易引起人们的注意,尤其是大型网站的可用性,如果大公司的网站出 ...
- Back Track5学习笔记
1.BT5默认用户名:root.密码:toor(公司是yeslabccies) 2.进入图形化界面命令:startx 3.更改密码:sudo passwd root 扫描工具 第一部分网络配置: 4. ...
- Falsy Bouncer
真假美猴王! 删除数组中的所有假值. 在JavaScript中,假值有false.null.0."".undefined 和 NaN. 这是一些对你有帮助的资源: Boolean ...
- debug调试日志和数据查询
手动删除es文件并释放磁盘空间 1.停掉服务 systemctl stop xsdaemon.service 2.删掉索引 rm -rf /home/storager/c3dceb5e-bacc-4a ...
- 【河南省第十一届ACM大学生程序设计竞赛-D】.求XF+闭包
如何设计一个好的数据库不仅仅是一个理论研究问题,也是一个实际应用问题.在关系数据库中不满足规范化理论的数据库设计会存在冗余.插入异常.删除异常等现象. 设R(U)是一个关系模式,U={ A1,A ...
- bzoj1711
题解: 原点->食物建一个1 食物->牛见一个1 牛->牛'见一个1 牛'->饮料1 饮料->汇点1 代码: #include<cstdio> #includ ...
- 公客网beta阶段项目展示
课程评价网站--公客网 为大学生选课排忧解难 公正客观的评课网站 为大学生提供发表自己看法的平台 为每一门课程打出公正的评分 beta阶段的新功能 beta阶段发布说明 评价的增删改 对课程发表评价 ...
- Markdown_00_资源帖
一.官方资料 1.原始官方文档 daringfireball.net 2.官方文档中文版 Markdown 语法说明 (简体中文版) Markdown: Basics (快速入门) 3.Typora官 ...
- 说说C++多重继承
尽管大多数应用程序都使用单个基类的公用继承,但有些时候单继承是不够用的,因为可能无法为问题域建模或对模型带来不必要的复杂性.在这种情况下,多重继承可以更直接地为应用程序建模. 一.基本概念 多重继承是 ...