Использование eventlet с SQLAlchemy - PullRequest
       19

Использование eventlet с SQLAlchemy

3 голосов
/ 03 сентября 2011

Я использую eventlet для создания простого сканера веб-сайтов, начиная с этого примера .Я хотел бы использовать SQLAlchemy для хранения содержимого веб-страниц и метаданных для дальнейшей обработки.Можно ли использовать SQLAlchemy вместе с eventlet?Кто-нибудь может привести простой пример?

Ответы [ 2 ]

6 голосов
/ 03 сентября 2011

Проект OpenStack Compute (Nova) использует SQLAlchemy и eventlet, вас может заинтересовать их подход .

4 голосов
/ 10 января 2013

Извините за поздний ответ.

Это будет зависеть от используемой вами библиотеки подключений к базе данных.

  • Для библиотеки расширений C, такой как MySQLdb, Eventlet имеет модуль db_pool , используемый в Пример OpenStack . По сути, он создает пул потоков ОС для выполнения блокирующих операций с БД. Таким образом, у вас не может быть много параллельных запросов, но, скорее всего, ваша база данных не выдержит их, так что это не проблема.
  • Для чистой библиотеки Python, такой как myconnpy, pg8000, просто позвоните eventlet.monkey_patch().
  • В особом случае Eventlet поддерживает патчирование обезьян для psycopg2 . Это расширение C, но оно достаточно круто для обеспечения перехватов ввода-вывода, так что вы получаете лучшее из обоих миров. Опять же, простой вызов monkey_patch() сделает свое дело.
...