我正在尝试用Mongodb做一些Twisted & Tornado的基准测试。
我用PyMongo运行了Twisted和Tornado (我知道这不是异步的--我只是好奇)
我让龙卷风和Asyncmongo一起运行。我无法让Twisted与Asyncmongo一起运行。
作为一个实验,我写了一些简单的代码来测试asyncmongo,并且回调从未被调用过。所以现在我想知道asyncmongo是否与Tornado捆绑在一起?
import asyncmongo
def main():
db = asyncmongo.Client(pool_id='mydb', host='localhost', port=27017, maxcached=10, maxconnections=10, dbname='mydb')
db.houses.find({'price':25, }, callback=_on_response )
print "query done"
while True:
pass
def _on_response(self, response, error):
print "yay - response"
if __name__ == '__main__':
main()"yay - response“-从不显示-回调未激活。
如果您不使用任何框架,是否可以使回调触发?有没有可能使用Twisted的反应堆/延迟器进行回调?如果不是,人们通常是如何与Mongo对话的?
发布于 2012-03-04 09:24:00
发布于 2012-03-05 02:23:21
在Asyncmongo README中:"AsyncMongo是一个用于访问mongo的异步库,它构建在tornado ioloop之上。“
所以,它依赖于龙卷风。在您的示例代码中,如果启动Tornado IOLoop,它应该可以工作。至于Twisted的用途,看起来@Jean-Paul Calderone的链接是你最好的选择。
https://stackoverflow.com/questions/9550748
复制相似问题