如何向用户提供关于芹菜任务执行状态的持续通知?



我以这种方式将我的项目与芹菜集成,在收到用户的请求后views.py内部

def upload(request):
if "POST" == request.method:
# save the file
task_parse.delay()
# continue

并在tasks.py

from __future__ import absolute_import
from celery import shared_task
from uploadapp.main import aunit

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

简而言之,共享任务将从位于名为main.py的目录中的第三个 python 文件中运行uploadapp/函数aunit()。 假设aunit()是一个需要时间的资源密集型过程(如文件解析(。当我将其与芹菜集成时,它现在完全异步工作,这对我来说很好。因此,任务开始 -> 芹菜进程 -> 它完成,然后芹菜将状态设置为完成。我可以使用flower查看。

但我想做的是,我想通过 django UI 通知正在使用我的应用程序的用户,一旦 Celery 在背面完成处理并将状态设置为 SUCCESS,就会Your Task is done processing

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

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

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

你需要一个实时机制。我会建议Firebase。在芹菜任务结束时,将用户 ID 的 Firebase 实时数据库字段更新为布尔值 = True。实现一个 javascript 函数来监听 Firebase 数据库user_id对象更改 ->更新界面

相关内容

  • 没有找到相关文章

最新更新