Подтвердить что ты не робот

Кто-нибудь знает о асинхронной mysql lib для python?

Я изучал неблокирующие серверы для python (торнадо, скручивание и т.д.), но многие преимущества, кажется, теряются, если нет неблокирующего соединения с базой данных. Кто-нибудь знает, есть ли какие-либо проекты, которые позаботятся об этом? (путем неблокирования a la node.js)

Изменить: Уточненный мой вопрос

4b9b3361

Ответ 1

Вы можете использовать Twisted ADBAPI для переноса синхронной реализации DBAPI.

например:.

from twisted.internet import reactor
from twisted.enterprise import adbapi

def result(rows):
    for row in rows:
        print row

    reactor.stop()

def fail(err):
    err.printDetailedTraceback()
    reactor.stop()

pool = adbapi.ConnectionPool('sqlite3', 'animals.db')
d = pool.runQuery('SELECT * FROM animals', ())
d.addCallbacks(result, fail)
reactor.run()

Ответ 2

Ознакомьтесь с нашим новым проектом txMySQL, который может сделать это сейчас.

Это встроенная асинхронная реализация двоичного протокола MySQL.

Ответ 3

Как вы это делаете, порождая запросы к базе данных в отдельном потоке. С помощью Twisted вы можете использовать deferToThread() или deferToThreadPool() (см. API docs 1).