Home

Tags

async mysql для tornado web

2012-10-15 python tornado mysql async

Один из способов - использовать эту библиотеку: async-mysql
Подключение и выполнение запроса будут выглядеть примерно так:

db = AsyncMysql(host='127.0.0.1', db='demo_db')
result, error = yield db.tquery('select * from table limit %s, %s', [0,5])

Библиотека основана на threads pool (пул потоков).

Полный пример
import tornado.ioloop
from tornado import gen
from async_mysql import AsyncMysql

ioloop = tornado.ioloop.IOLoop.instance()

db = AsyncMysql(host='127.0.0.1', port=3306, db='demo', pool_size=5)

@gen.engine
def go():
    result, error = yield db.tquery('select * from demo limit %s, %s', [0,5])
    print result, error

    ioloop.stop()
    db.stop()

ioloop.add_callback(go)
ioloop.start()