让用户启动芹菜任务,让用户知道任务何时完成

时间:2014-11-21 11:29:52

标签: ajax django celery django-celery

我有一个个人资料页面,用户可以在其中查看他的所有信息。

我想创建一个按钮,以便用户可以提取一些特定的外部信息。

该按钮应该启动芹菜任务,当任务完成后,用户应该收到一条消息"已完成"

我该怎么做?

<a href="/start-task/">Pull external info</a>

我的&#34;开始任务&#34;视图:

def start_task(request):

    get_external_user_info.delay(user=request.user)

    return HttpResponse("Task started")

但如果任务完成,如何进行ajax检查?

我需要另一种观点吗?那个观点怎么样?

1 个答案:

答案 0 :(得分:0)

你必须得到task_id

x= get_external_user_info.delay(user=request.user)
id = x.task_id
return HttpResponse(id)

之后使用此id到ajax并获取状态

AsyncResult(id).state

选中此Celery task status