我一直在尋找到非阻塞服務器的蟒蛇(龍捲風,扭曲等),但有很多的好處,似乎如果沒有無阻塞到數據庫的連接丟失。有誰知道是否有任何項目可以處理這個問題? (非阻塞一拉的node.js)有誰知道python的異步mysql庫嗎?
編輯:澄清我的問題
我一直在尋找到非阻塞服務器的蟒蛇(龍捲風,扭曲等),但有很多的好處,似乎如果沒有無阻塞到數據庫的連接丟失。有誰知道是否有任何項目可以處理這個問題? (非阻塞一拉的node.js)有誰知道python的異步mysql庫嗎?
編輯:澄清我的問題
你這樣做的方法是在一個單獨的線程產卵數據庫查詢。使用Twisted,您可以使用deferToThread()
或deferToThreadPool()
(請參閱API文檔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()
看看我們的新txMySQL project現在可以做到這一點。
這是一個本機異步執行二進制MySQL協議的。
此外,twisted.enterprise.adbapi提供deferToThreadPool'的'頂部的DB-API類API專門使其更易於訪問MySQL等RDBMS在基於雙絞線應用。 – 2009-12-13 22:57:20