如何限制异步 Celery 任务中的并发 Http 请求数



我正在使用 Celery 任务( + python 请求和 PhantomJs)异步抓取许多网站,我使用 crawlera 作为代理,但我的帐户限制为 100 个并发请求。

我想知道如何做到这一点的最佳方法。我知道我可以使用 Redis(或其他东西)作为信号量,并在 acquire() 在随机秒数后失败时重新触发任务,但我认为这种方法不好。

是什么让你觉得这种方法不好?它可能对您的情况有利,也可能不利 - 它完全取决于您的实现和环境的细节。

另一种方法是限制任何 1 个工作线程可以同时建立的连接数,并限制工作线程/任务的数量,以便连接总数永远不会超过 100。

相关内容

  • 没有找到相关文章