是否可以显示 django celery 任务的进度条? [复制]

Posted

技术标签:

【中文标题】是否可以显示 django celery 任务的进度条? [复制]【英文标题】:Is it possible to show progress bar of django celery task? [duplicate] 【发布时间】:2013-02-12 17:22:24 【问题描述】:

我在 django celery 中使用数据库后端。任务信息存储在数据库中名为:celery_taskmeta 的表中。 这是我的任务:

@celery.task
def file_transfer(password, source12, destination):
    result = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-az', source12, destination], 
                                    stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
    return result     

我这样调用任务:

file_transfer.s(password, source12, destination)

现在我想向用户显示他们在 Django 模板中的任务进度和剩余时间。我怎样才能做到这一点?

【问题讨论】:

不,不是主题可能相同,但该问题的答案不是很清楚。 你为什么总是将我的问题标记为否定?你对我有什么怨恨吗? 【参考方案1】:

也许我对Django-Celery progress bar 的回答会有所帮助(还将代码发布到DjangoSnippets,这就是我为那几行http://djangosnippets.org/snippets/2898/ 感到自豪)

【讨论】:

你是作者吗?我该如何实施? 是的,我是。我使用 AJAX 通过轮询(0.5 秒间隔)poll_state 视图,然后使用它为内部 div 的“宽度”CSS 属性提供的百分比(如 。抱歉花了这么长时间顺便说一句,我之前没有看到你的问题:( 谢谢sn-p,前端代码也可以分享一下吗? Demonedge:恐怕我已经没有了。 IIRC,我只是在一个 div 中有一个 div,它的 width 设置为每秒左右从后端检索的百分比值。

以上是关于是否可以显示 django celery 任务的进度条? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Django Celery Beat 和任务结果

如何在 django 中将 api 放入 celery 任务中?

Django中使用Celery,定制应用程序中定义的shared_task未在定期任务管理页面的注册任务中显示

重试丢失或失败的任务(Celery、Django 和 RabbitMQ)

Django Celery 结果将任务 ID 设置为人类可读的内容?

是否有人将 django celery worker 实现为 docker 容器,它仅在分配任务时运行