tornado 异步数据库问题 归纳与疑问?

2013-03-02 20:12:37 +08:00
 yxlwfds
喜欢TORNADO,关于异步数据库mysql有以下几种解决办法,为兼容异步和性能,希望大牛可以给喜欢TORNADO的新手们以建议:

@js 兄:
gevent+ pymysql(Cython之, 有个文件raise异常的地方需要改一下), gevent+umysql, eventlet+mysqldb(eventlet.db_pool)
https://github.com/hongqn/umysqldb

txMySQL 异步客户端
https://github.com/hybridlogic/txMySQL

Twisted's adbapi :
有个kn cyclone框架"建立在twisted之上的cyclone比tornado强太多,而且在windows 平台上可以用iocp.而且从tornado迁移到cyclone太简单了,cyclone本来就是fork了tornado的代码换了底层"

另外还有新找到一个:
https://github.com/ovidiucp/pymysql-benchmarks,看样子效率不错,还不有测试,好像不是太完整,希望有人可以完善下。

另外Tornado的下一个大版本规划有一些对堵塞操作的支持,可能是以多线程的方式,也可能用greenlet协程的方式,具体尚不明朗

可能已经有大牛有了解决方法,可以发出来参考下吗,或者大家还有补充吗?
7063 次点击
所在节点    Tornado
3 条回复
swulling
2013-03-02 20:43:33 +08:00
小应用的话搞个线程池,阻塞的操作扔里面。
小例子,忘了是从哪里copy来的
https://gist.github.com/ninehills/4465999
yxlwfds
2013-03-02 22:14:14 +08:00
写web,cms ,大流量 并发
jjx
2013-03-03 22:50:04 +08:00
tornado也不一定要用异步数据库的,用pyzmq将请求转移到另一个中间层,然后再那个层中可以写同步代码了。参考pyzmq的例子

简单的使用gevent+ sqlalchemy+pycopg2 ,参考这个代码,代码完全是同步写法https://bitbucket.org/zzzeek/green_sqla

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/61765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX