我需要使用Celery从多个域下载大量URL。我有一个任务,下载一个URL,做一些东西,然后在MongoDB中存储一些数据。
运行任务的计算机可以轻松处理此类型的64个并发任务,但为了尽量减少对目标Web服务器的影响,我只希望每个域使用四个并发请求。有没有办法做到这一点?
我查看了几个锁定示例,但如果它在一定时间内无法获取锁定,它们似乎都会撤销任务。
答案 0 :(得分:1)
刚刚意识到使用链和和弦可以很容易地实现这一点,只需将URL访问任务添加到N个链(其中N是每个域的并发下载的数量)。
然后我可以将这些链添加到单个和弦中,以便在下载所有URL时运行分析任务。