使用Celery,在单个Celery任务中执行一个URL列表.有可能吗



视图.py

urls=["https//:.....com,https//:.....com,etc.."]
for i in urls:
r=process.delay(i)

当我调用芹菜任务时,它执行单独的任务。如何在一个芹菜任务中执行一组列表?

任务.py

@app.task
def process(url):
r = requests.get(url, allow_redirects=True)
return r

您可以将一组URL,甚至整个列表传递给芹菜任务。但这并没有多大意义,因为我们实际上并没有利用并行的传出请求,因为每个URL都是串行访问的,一个接一个。

视图.py

urls=["https//:.....com", "https//:.....com", ...]
r = process.delay(urls)

任务.py

@app.task
def process(urls):
results = []
for url in urls:
r = requests.get(url, allow_redirects=True)
results.append(r)
return results

相关内容

  • 没有找到相关文章

最新更新