Pymongo не работает с многопоточностью - PullRequest
3 голосов
/ 08 февраля 2012

следующий код не работает ни в python2.6, ни в python3.2.

Тестовый код:

import pymongo

class A(Thread):  
        def __init__(self):  
            Thread.__init__(self)  
            self.conn = pymongo.Connection('localhost',30000)  
            self.mongo = self.conn.puppet  
            self.mongo.authenticate('test','123')  
        def run(self):  
            print self.mongo.href.find_one()  

A().start()

Сообщение об исключении:

 OperationFailure: database error: unauthorized db:puppet lock
   type:-1 client:127.0.0.1  

Есть идеи как это исправить?

1 Ответ

3 голосов
/ 08 февраля 2012

Вероятно, это связано с тем, как аутентификация обрабатывается в pymongo, см. Примечание в документации API - Pymongo не кэширует учетные данные аутентификации между потоками, поэтому каждый поток должен проходить аутентификацию индивидуально.

...