Tornado Documentation
http://www.sunp.eu.org/tornado/
Tornado on GitHub
https://github.com/facebook/tornado/
Tornado Gists
http://tornadogists.org/
yxlwfds
V2EX  ›  Tornado

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

  •  
  •   yxlwfds · Mar 2, 2013 · 7967 views
    This topic created in 4850 days ago, the information mentioned may be changed or developed.
    喜欢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协程的方式,具体尚不明朗

    可能已经有大牛有了解决方法,可以发出来参考下吗,或者大家还有补充吗?
    3 replies    1970-01-01 08:00:00 +08:00
    swulling
        1
    swulling  
       Mar 2, 2013
    小应用的话搞个线程池,阻塞的操作扔里面。
    小例子,忘了是从哪里copy来的
    https://gist.github.com/ninehills/4465999
    yxlwfds
        2
    yxlwfds  
    OP
       Mar 2, 2013
    写web,cms ,大流量 并发
    jjx
        3
    jjx  
       Mar 3, 2013   ❤️ 1
    tornado也不一定要用异步数据库的,用pyzmq将请求转移到另一个中间层,然后再那个层中可以写同步代码了。参考pyzmq的例子

    简单的使用gevent+ sqlalchemy+pycopg2 ,参考这个代码,代码完全是同步写法https://bitbucket.org/zzzeek/green_sqla
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1091 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 18:20 · PVG 02:20 · LAX 11:20 · JFK 14:20
    ♥ Do have faith in what you're doing.