11

私はPython用の非ブロッキングサーバー(tornado、twistedなど)を調べてきましたが、データベースへの非ブロッキング接続がないと、多くの利点が失われるようです。これを処理するプロジェクトがあるかどうか誰かが知っていますか?(la node.jsを非ブロック化することにより)

編集:私の質問を明確にしました

4

3 に答える 3

13

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()
于 2009-12-14T00:15:05.803 に答える
4

これを今すぐ実行できる新しいtxMySQLプロジェクトをチェックしてください。

これは、バイナリMySQLプロトコルのネイティブ非同期実装です。

于 2011-02-09T17:05:54.743 に答える
1

その方法は、別のスレッドでデータベース クエリを生成することです。Twisted ではdeferToThread()orを使用できますdeferToThreadPool()(API ドキュメント1を参照)。

于 2009-12-13T21:58:08.970 に答える