Asyncmongo和Twisted

时间:2012-03-03 23:21:23

标签: python twisted tornado pymongo

我正在尝试对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来解决回调问题?如果不是,人们通常会如何与蒙古人交谈?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

来自Asyncmongo README:“AsyncMongo是一个用于访问基于龙卷风ioloop的mongo的异步库。”

所以是的,它取决于龙卷风。在您的示例代码中,如果您启动Tornado IOLoop,它应该可以工作。至于与Twisted一起使用的东西,看起来@ Jean-Paul Calderone的链接是你最好的选择。