모터 에서 Motor PyMongo PyMongo 비동기로 마이그레이션
이 페이지의 내용
중요
PyMongo 비동기 운전자 는 실험용이므로 프로덕션 환경에서는 사용해서는 안 됩니다. 이 가이드 에 설명된 클래스, 메서드 및 동작은 전체 출시하다 이전에 변경될 수 있습니다. PyMongo Async에 문제가 발생하는 경우 문제 및 도움말 페이지에서 문제를 보고하는 방법을 학습 수 있습니다.
개요
PyMongo PyMongo 비동기 운전자 는 PyMongo PyMongo 와 모터Motor 라이브러리를 통합한 것입니다. 이 가이드 에서는 애플리케이션 을 모터 에서 PyMongo 비동기 운전자 로 마이그레이션 하기 위해 수행해야 하는 변경 사항을 확인할 수 Motor 있습니다.PyMongo
모터 에서 마이그레이션 Motor
PyMongo 비동기 운전자 는 모터 라이브러리와 유사하게 작동하지만, 스레드 풀에 작업을 위임하는 대신 Python Asyncio를 직접 사용하므로 지연 시간 과 처리량 이 향상됩니다. 대부분의 경우 MotorClient
대신 AsyncMongoClient
를 사용하고 애플리케이션의 가져오기 문을 pymongo
에서 가져오도록 변경하여 기존 모터 애플리케이션을 PyMongo Async로 직접 마이그레이션 할 수 있습니다.
다음 예시 는 모터 에서 읽기 및 쓰기 (write) 작업에 Motor PyMongo 클라이언트 를 사용할 경우 PyMongo 비동기와 비교했을 때 가져오기의 차이점을 보여줍니다.
# Motor client import from motor.motor_asyncio import AsyncIOMotorClient # PyMongo Async client import from pymongo import AsyncMongoClient
PyMongo 비동기 운전자 에서 사용할 수 있는 비동기 메서드 목록을 보려면 PyMongo 비동기 가이드 의 비동기 메서드 섹션을 참조 PyMongo .
다음 섹션에서는 모터 에서 PyMongo 비동기 운전자 로 마이그레이션할 때 애플리케이션 에서 구현 해야 하는 메서드 서명 변경 사항을 Motor 보여줍니다.PyMongo
메서드 서명 변경
다음 Motor PyMongo 모터 메서드 서명은 PyMongo 비동기 운전자 에서 다르게 작동합니다.
AsyncMongoClient.__init__()
io_loop
매개 변수를 허용하지 않습니다.AsyncCursor.each()
PyMongo 비동기 운전자 에 존재하지 않습니다.MotorGridOut.stream_to_handler()
PyMongo 비동기 운전자 에 존재하지 않습니다.AsyncCursor.to_list(0)
PyMongo 비동기 운전자 에서는 유효하지 않습니다. 대신to_list(None)
을(를) 사용하세요.MongoClient
AsyncMongoClient
은 스레드로부터 안전하지 않으며 여러 스레드에서 사용할 수 있지만 은 스레드로부터 안전하지 않으므로 단일 이벤트 루프 에서만 사용해야 합니다.
추가 정보
비동기 Python 에 학습 보려면 Python Asyncio 설명서를 참조하세요.