Asyncmongo и Twisted - PullRequest
       23

Asyncmongo и Twisted

3 голосов
/ 04 марта 2012

Я пытаюсь сделать несколько тестов Twisted & Tornado с Mongodb.

У меня Twisted и Tornado работают с PyMongo (я знаю, что это не асинхронно - мне просто любопытно)

У меня Торнадо работает с 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?Если нет, то как люди обычно разговаривают с Монго на Твисте?

Ответы [ 2 ]

4 голосов
/ 04 марта 2012
3 голосов
/ 04 марта 2012

Из Asyncmongo README : «AsyncMongo - это асинхронная библиотека для доступа к монго, построенная на ioloop торнадо».

Так что да, это зависит от Tornado.В вашем примере кода это должно работать, если вы запустите IOLoop Tornado.Что касается использования Twisted, то, похоже, ссылка @ Jean-Paul Calderone - ваш лучший выбор.

...