2012-09-14 25 views
0

该场景是使用RMDB id作为参数保存API请求的响应。 我想从imdv-id tt0000001到tt9999999的所有电影信息。如何使用Python(Gevent)异步抓取内容?

现在我使用gevent来运行几个线程(gevent.joinall(线程)),它不是那么快。 有没有其他的解决方案可以解决这类问题,比如使用Celery + RabbitMQ?

回答

0

为此,您必须确保您没有在您的代码中进行任何阻止呼叫,因为这也会阻止其他运行的所有其他因素,从而减慢整个系统的运行速度。 阻塞的原因包括紧密循环或未被eventlet的猴子补丁修补的IO(例如C扩展)。

芹菜支持使用eventlet & gevent,这可能是您正在做的(web请求IO)推荐的并发性 选项。 Celery可能不会让你的代码运行得更快,但它可以让你轻松地将工作分发给很多机器。

要优化你应该总是分析你的代码,找出瓶颈是什么。这可能是很多事情,例如网络速度慢,主机缓慢,DNS缓慢或其他问题。