eventlet을 사용하여 this example에서 시작하는 간단한 웹 사이트 크롤러를 작성했습니다. SQLAlchemy를 사용하여 추가 처리를 위해 웹 페이지의 콘텐츠와 메타 데이터를 저장하고 싶습니다. SQLAlchemy를 eventlet과 함께 사용할 수 있습니까? 누구나 간단한 예제를 제공 할 수 있습니까?SQLAlchemy에서 eventlet 사용
3
A
답변
3
늦게 답장을 드려 죄송합니다.
정말 데이터베이스 연결 라이브러리에 의존합니다. OpenStack example에서 사용되는 C 확장 라이브러리
- 는 MySQLdb 같은 Eventlet은 db_pool 모듈을 갖는다. 기본적으로 블로킹 DB 작업을 실행하는 OS 스레드 풀을 생성합니다. 따라서 병렬 쿼리를 많이 수행 할 수는 없지만 데이터베이스가 어쨌든 문제를 해결할 수는 없으므로 문제가되지 않습니다.
- 순수한 파이썬 라이브러리의 경우 myconnpy, pg8000과 같이
eventlet.monkey_patch()
을 호출하십시오. - 특수한 경우로 Eventlet은 psycopg2에 대한 원숭이 패치를 지원합니다. 이것은 C 확장이지만 IO 후크를 제공 할만큼 굉장하여 두 세계에서 최상의 성능을 발휘합니다. 다시 말하지만,
monkey_patch()
에 대한 간단한 호출이 트릭을 수행합니다.
6
OpenStackCompute (Nova) 프로젝트에서 SQLAlchemy 및 이벤트 릿을 사용하는 경우 their approach에 관심이있을 수 있습니다.
허용되는 대답이어야합니다. 가장 좋은 방법은 SQLAlchemy NullPoll과 함께 eventlet db_pool 모듈을 사용하는 것입니다. –