mongodb事务卡住了(pymongo)

时间:2019-12-19 13:57:39

标签: mongodb transactions pymongo

pymongo交易在生产上停滞不前,但在本地工作上停滞了。

def __delete_save_with_transaction(self, doc, dups, **kwargs):
    def callback(_session):
        collection = _session.client[db][collection]

        a = collection.delete_many({'_id': {'$in': [i['_id'] for i in dups]}}, session=_session)
        b = collection.insert_one(doc, session=_session)

        print(a, b)
        return a, b

    with self.__client.start_session() as session:
        session.with_transaction(callback,
                                 read_concern=ReadConcern('local'),
                                 write_concern=WriteConcern('majority'),
                                 read_preference=ReadPreference.PRIMARY
                                 )

回调函数按预期方式工作。它删除文档并添加新文档。它还打印ab。但是__delete_save_with_transaction函数卡住了,不返回任何东西。 我试图降级pymogo并使用session.commit_transaction(),但结果相同。

我尝试在本地进行,但是对于本地来说一切正常。生产数据库包含3个副本集中的6000万个节点,其中一个副本延迟24小时。

0 个答案:

没有答案