我正在使用eventlet构建一个简单的网站爬虫,起始点是这个示例。我想使用SQLAlchemy存储网页内容和元数据以进行进一步处理。能否在eventlet中使用SQLAlchemy?有没有简单的示例可以提供?
抱歉回复晚了。 这将取决于您使用的数据库连接库。 对于C扩展库,例如MySQLdb,在db_pool模块中使用了Eventlet,如OpenStack示例。基本上,它创建了一个OS线程池来执行阻塞的DB操作。因此,您无法真正拥有大量并行查询,但最可能您的数据库也无法承受它们,因此这不是一个问题。 对于纯Python库,例如myconnpy、pg8000,则只需调用eventlet.monkey_patch()。 作为特殊情况,Eventlet支持psycopg2的monkey patching。它是一个C扩展,但它足够强大,可以提供IO hooks,因此您可以获得两全其美的效果。同样,简单地调用monkey_patch()即可解决问题。