我一直在寻找用于python(龙卷风,扭曲等)的非阻塞服务器,但是如果没有与数据库的非阻塞连接,那么很多好处似乎都会丢失。有谁知道是否有任何项目可以解决这个问题? (通过非阻塞la node.js)
编辑:澄清我的问题
答案 0 :(得分:13)
您可以使用Twisted的ADBAPI来包装同步DBAPI实现。
E.g:
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()
答案 1 :(得分:4)
查看我们现在可以执行此操作的新txMySQL project。
这是二进制MySQL协议的本机异步实现。
答案 2 :(得分:1)
您这样做的方法是在单独的线程中生成数据库查询。使用Twisted,您可以使用deferToThread()
或deferToThreadPool()
(请参阅API文档1)。