基于gevent的高性能,nonblock,开始学习gevent。
如果用gevent来host wsgi(比如django、web.py),连接mysql的时候,MySQLdb肯定是不能用的了,因为MySQLdb直接用c把对socket的操作都给封装了,调用monkey.patch_all()来打patch,并不会起作用,所以此时mysql操作仍然是blocking的。
也在网上查询了几个基于gevent的mysql 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