首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为用户提供关于Celery的任务执行状态的持续通知?

如何为用户提供关于Celery的任务执行状态的持续通知?
EN

Stack Overflow用户
提问于 2018-06-08 06:46:27
回答 1查看 586关注 0票数 1

在收到用户的请求后,我以这种方式在views.py中集成了我的项目与celery

代码语言:javascript
复制
def upload(request):
    if "POST" == request.method:
        # save the file
        task_parse.delay()
        # continue

tasks.py

代码语言:javascript
复制
from __future__ import absolute_import
from celery import shared_task
from uploadapp.main import aunit


@shared_task
def task_parse():
    aunit()
    return True

简而言之,共享任务将从第三个python文件运行函数aunit(),该文件位于uploadapp/目录中,名为main.py。让我们假设aunit()是一个耗费大量资源的过程,需要时间(就像文件解析一样)。当我将它与芹菜集成在一起时,它现在完全异步工作,这对我来说是件好事。因此,任务start -> Celery process -> It Finish然后将celery的状态设置为Finish。我可以使用flower查看它。

但我想要做的是,一旦芹菜在后台完成处理,我想通过django UI通知正在使用我的应用程序的用户Your Task is done processing,并将状态设置为SUCCESS。

现在,我知道这是可能的,如果:

1.)我不断地请求状态,看看它是否返回成功。

我如何通过芹菜做到这一点。如何从views.py查询Celery任务状态,并仅使用celery的python模块异步通知用户?

EN

回答 1

Stack Overflow用户

发布于 2018-06-11 22:57:19

你需要一个实时机制。我建议使用Firebase。使用celery任务末尾的boolean=True更新用户id的Firebase实时DB字段。实现一个javascript函数,监听Firebase数据库user_id对象的变化,->更新UI

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档