python - 通过 API 显示执行 Celery 任务的结果
问题描述
我从 POST 请求中依次获得了几个网站地址。我会得到工作ID。该任务收集任何 HTML 标记的数量。接下来,通过api,你需要通过任务号来显示结果。如何实现从任务中保存结果?
我将使用此代码来计算 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 с
PS 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 中使用此代码段
推荐阅读
- laravel - 由于 SQL 的驱动程序错误,在 Laravel 中使用迁移时遇到问题
- python - pandas 在 groupby sum 之后对每个组内的值进行排序,并在使用 cumsum 后获取值的百分比
- android - 单击按钮并在自定义对话框下方显示白色背景时,自定义警报对话框不会被关闭
- python - 将字典存储在唯一值列中具有重复条目的数据框中
- amazon-web-services - 如何在 AWS 中获取自定义私有 DNS
- scala - 从kafka主题获取最后插入的消息
- c# - GetUtcOffset 返回某些年份/日期的错误偏移量
- python - How to plot a pie chart in matplotlib with 3 columns?
- plsql - ORA-06502: PL/SQL: 将同一列批量收集到自己声明的类型时出现数字或值错误
- web-crawler - 将发现的 url 循环回获取它们的正确方法是什么?