Nano Hash - криптовалюты, майнинг, программирование

Не могу подключиться через MongoTor

Я пытался изменить свой код, чтобы сделать его асинхронным, используя MongoTor.

Вот мой простой код:

class BaseHandler(tornado.web.RequestHandler):
    @property 
    def db(self):
        if not hasattr(self,"_db"):
            _db = Database.connect('localhost:27017', 'essog')
            return _db
    @property
    def fs(self):
        if not hasattr(BaseHandler,"_fs"):
            _fs = gridfs.GridFS(self.db)
            return _fs


class LoginHandler(BaseHandler):
    @tornado.web.asynchronous
    @tornado.gen.engine
    def post(self):
        email = self.get_argument("email")
        password = self.get_argument("pass1")
        try:
            search = yield tornado.gen.Task(self.db.users.find, {"prs.mail":email})
            ....

Я получил эту ошибку:

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\web.py", line 1043, in _stack_context_handle_exception
raise_exc_info((type, value, traceback))
File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\web.py", line 1162, in wrapper
return method(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\gen.py", line 122, in wrapper
runner.run()
File "C:\Python27\lib\site-packages\tornado-2.4.post1-py2.7.egg\tornado\gen.py", line 365, in run
yielded = self.gen.send(next)
File "G:\Mon projet\essog\handlers.py", line 92, in post
search = yield tornado.gen.Task(self.db.users.find, {"prs.mail":email})
File "G:\Mon projet\essog\handlers.py", line 62, in db
_db = Database.connect('localhost:27017', 'essog')
File "build\bdist.win-amd64\egg\mongotor\database.py", line 131, in connect
database.init(addresses, dbname, read_preference, **kwargs)
File "build\bdist.win-amd64\egg\mongotor\database.py", line 62, in init
ioloop_is_running = IOLoop.instance().running()
 AttributeError: 'SelectIOLoop' object has no attribute 'running'
 ERROR:tornado.access:500 POST /login (::1) 3.00ms

Вот еще вопрос, как сделать distinct в этом случае?

Вот что работало в режиме блокировки:

search = self.db.users.find({"prs.mail":email}).distinct("prs.mail")[0]

Обновлять:

Кажется, эта ошибка возникает, когда Торнадо не запущен! Та же ошибка возникает при использовании только модуля в консоли.

test = Database.connect("localhost:27017", "essog") ---------------------------------- ----------------------------------------- AttributeError Traceback (последний последний вызов) в () ----> 1 тест = Database.connect("localhost:27017", "essog")

C:\Python27\lib\site-packages\mongotor-0.0.10-py2.7.egg\mongotor\database.pyc в соединении (cls, адреса, имя базы данных, read_preference, **kwargs) 131 132 база данных = база данных () --> 133 database.init(addresses, dbname, read_preference, **kwargs) 134 135 вернуть базу данных

C:\Python27\lib\site-packages\mongotor-0.0.10-py2.7.egg\mongotor\database.pyc в init(self, addresss, dbname, read_preference, **kwargs) 60 self._nodes.append( node) 61 ---> 62 ioloop_is_running = IOLoop.instance().running() 63 self._config_nodes(callback=partial(self._on_config_node, ioloop_is_running)) 64

AttributeError: объект «SelectIOLoop» не имеет атрибута «работает»


  • это потому, что в асинхронном режиме я не могу использовать наследование, чтобы постоянно открывать соединение? 08.11.2012

Ответы:


1

я получил ответ:

  1. прямо сейчас Tornado 2.4post1 удалил running(), поэтому, чтобы использовать настоящий MongoTor, используйте tornado 2.4

Редактировать: торнадо и монготор теперь работают лучше с их последней версией.

  1. с использованием отдельных:

    distinc_uuids = yield gen.Task(db.collection_test.find({"param":'shouldbeparam1'}).distinct, 'uuid')
    
11.11.2012
  • извините, не обновил ответ, теперь работает последний монготор 10.08.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..