私はPython用の非ブロッキングサーバー(tornado、twistedなど)を調べてきましたが、データベースへの非ブロッキング接続がないと、多くの利点が失われるようです。これを処理するプロジェクトがあるかどうか誰かが知っていますか?(la node.jsを非ブロック化することにより)
編集:私の質問を明確にしました
私はPython用の非ブロッキングサーバー(tornado、twistedなど)を調べてきましたが、データベースへの非ブロッキング接続がないと、多くの利点が失われるようです。これを処理するプロジェクトがあるかどうか誰かが知っていますか?(la node.jsを非ブロック化することにより)
編集:私の質問を明確にしました
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()
これを今すぐ実行できる新しいtxMySQLプロジェクトをチェックしてください。
これは、バイナリMySQLプロトコルのネイティブ非同期実装です。
その方法は、別のスレッドでデータベース クエリを生成することです。Twisted ではdeferToThread()
orを使用できますdeferToThreadPool()
(API ドキュメント1を参照)。