在SQLAlchemy中使用eventlet

时间:2011-09-03 15:32:15

标签: python sqlalchemy eventlet

我正在使用eventletthis example开始构建一个简单的网站抓取工具。 我想使用SQLAlchemy来存储网页的内容和元数据,以便进一步处理。可以将SQLAlchemy与eventlet一起使用吗?任何人都可以提供一个简单的例子吗?

2 个答案:

答案 0 :(得分:6)

OpenStack Compute (Nova)项目使用SQLAlchemy和eventlet,您可能对their approach感兴趣。

答案 1 :(得分:4)

很抱歉迟到的回复。

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

  • 对于C扩展库,如MySQLdb,Eventlet具有db_pool中使用的OpenStack example模块。基本上,它创建了一个OS线程池来执行阻塞数据库操作。所以你真的不能有很多并行查询,但很可能你的数据库无论如何都无法生存,所以这不是问题。
  • 对于纯Python库,例如myconnpy,pg8000,然后只需致电eventlet.monkey_patch()
  • 作为特例,Eventlet支持 psycopg2 的猴子补丁。它是一个C扩展,但它足以提供IO挂钩,因此您可以充分利用这两个世界。再一次,简单地调用monkey_patch()就可以了。