我正在尝试对Twisted& amp;做一些基准测试与Mongodb的龙卷风。
我使用PyMongo运行Twisted和Tornado(我知道这不是异步 - 我只是很好奇)
我让Tornado与Asyncmongo一起运行。 我不能让Twisted与Asyncmongo一起跑步。
作为一个实验,我编写了一些简单的代码来测试asyncmongo,并且永远不会调用回调。所以现在我想知道是asyncmongo并入龙卷风吗?
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的reactor / deferreds来解决回调问题?如果不是,人们通常会如何与蒙古人交谈?
答案 0 :(得分:4)
答案 1 :(得分:3)
来自Asyncmongo README:“AsyncMongo是一个用于访问基于龙卷风ioloop的mongo的异步库。”
所以是的,它取决于龙卷风。在您的示例代码中,如果您启动Tornado IOLoop,它应该可以工作。至于与Twisted一起使用的东西,看起来@ Jean-Paul Calderone的链接是你最好的选择。