发布时间:2022-08-09 文章分类:编程知识 投稿人:李佳 字号: 默认 | | 超大 打印

基于gevent的高性能,nonblock,开始学习gevent

如果用gevent来host wsgi(比如django、web.py),连接mysql的时候,MySQLdb肯定是不能用的了,因为MySQLdb直接用c把对socket的操作都给封装了,调用monkey.patch_all()来打patch,并不会起作用,所以此时mysql操作仍然是blocking的。


也在网上查询了几个基于geventmysql client


driver,比如gevent-mysql。但是我觉得gevent-mysql虽然是nonblocking,但是貌似仍然不能使用长连接,这样的话,几个协程公用一个mysql


conneciton,就是出现“协程安全“的问题吧。gevent-mysql官方给的例子里面,几个协程都是分别起一个mysql


connection的,
https://github.com/mthurlin/gevent-MySQL/blob/master/examples/benchmark.py

不知说的对不对,希望大家拍砖。




--


来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)


发言:
[hidden email]

退订:
[hidden email] (向此发空信即退!)

详情:
http://code.google.com/p/cpyug/wiki/PythonCn

严正: 理解列表! 智慧提问!
http://wiki.woodpecker.org.cn/moin/AskForHelp

强烈: 建议使用技巧: 如何有效地报告Bug


http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html