2009-12-13 58 views
11

我一直在尋找到非阻塞服務器的蟒蛇(龍捲風,扭曲等),但有很多的好處,似乎如果沒有無阻塞到數據庫的連接丟失。有誰知道是否有任何項目可以處理這個問題? (非阻塞一拉的node.js)有誰知道python的異步mysql庫嗎?

編輯:澄清我的問題

回答

1

你這樣做的方法是在一個單獨的線程產卵數據庫查詢。使用Twisted,您可以使用deferToThread()deferToThreadPool()(請參閱API文檔1)。

+2

此外,twisted.enterprise.adbapi提供deferToThreadPool'的'頂部的DB-API類API專門使其更易於訪問MySQL等RDBMS在基於雙絞線應用。 – 2009-12-13 22:57:20

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() 
4

看看我們的新txMySQL project現在可以做到這一點。

這是一個本機異步執行二進制MySQL協議的。

相關問題