5

I'm using eventlet to build a simple website crawler starting from this example. I would like to use SQLAlchemy to store web pages' content and metadata for further processing. It's possible to use SQLAlchemy along with eventlet? Could anyone provide a simple example?

4

2 回答 2

7

OpenStack Compute (Nova)项目使用SQLAlchemy 和 eventlet,您可能对他们的方法感兴趣。

于 2011-09-03T15:59:06.570 回答
4

抱歉回复晚了。

这实际上取决于您使用的数据库连接库。

  • 对于 C 扩展库,如 MySQLdb,Eventlet 具有OpenStack 示例中使用的db_pool模块。基本上,它创建一个操作系统线程池来执行阻塞的数据库操作。所以你不能真的有很多并行查询,但很可能你的数据库无论如何都无法生存,所以这不是问题。
  • 对于纯 Python 库,如 myconnpy、pg8000,则只需调用eventlet.monkey_patch().
  • 作为一个特例,Eventlet 支持psycopg2的猴子补丁。它是一个 C 扩展,但它足以提供 IO 挂钩,因此您可以两全其美。同样,简单的调用monkey_patch()就可以了。
于 2013-01-09T21:08:47.540 回答