我依次从 POST 请求中获取多个网站地址。我将获得作业 ID。该任务收集任何 HTML 标记的数量。接下来,通过 api,y ou 需要按任务编号显示结果。如何实现从任务中保存结果?
我将使用此代码来计算 HTML 标记:
@app.task(serializer='json')
def demo(request, some_url):
if request.method=="POST"
page = requests.get(some_url)
tree = html.fromstring(page.content)
all_elms = tree.cssselect('*')
all_tags = [x.tag for x in all_elms]
c = Counter(all_tags)
"""for e in c:
#print('{}: {}'.format(e, c[e]))"""
return с
P.S Code是可选的,我有足够的主题或想法链接!
from celery.result import AsyncResult
from project.celery import app #import your celery app
res = AsyncResult('task_id', app=app)
res.state #gives you the state of the task
res.get() #gives you the result
您可以在 API 中使用此代码段