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

时间:2016-01-27 14:39:51

标签: python django asynchronous celery semaphore

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

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

1 个答案:

答案 0 :(得分:0)

是什么让你认为这种方法不好? 它可能会或可能不会对您的情况有益 - 它完全取决于您的实施细节和您的环境。

另一种方法是限制任何1名工作人员可以同时进行的连接数量,并限制工作人员/任务的数量,以使连接总数不超过100.