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?
问问题
2720 次
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 回答