问题

我有一个Django站点,使用celeri+RabbitMQ作为长时间运行任务的任务队列。我把结果存储在Redis中。我已经能够使用Celery的update_state在引导进度条中显示一个任务的进度,并通过一个按钮向Redis DB发送ajax post来检索当前状态。在

理想情况下,我想显示每个任务当前正在运行或最近完成,是在Redis与它自己的进度条。目前,我只能显示由我的小Click Here按钮启动的当前任务的进度。在

我试着为进度条制作多个类,但老实说,我不知道该怎么做,似乎找不到任何关于如何做这样的事情的东西。我试着上传尽可能多的代码。任何帮助将不胜感激!在

代码

在网址.pyurlpatterns = [

url(r'^poll_state$', poll_state, name="poll_state"),

url(r'^do_task$', do_task, name="do_task"),

]

在视图.py

^{pr2}$

在任务.pyfrom __future__ import absolute_import, unicode_literals

from celery import shared_task

from celery.decorators import task

from celery import current_task

from celery.result import AsyncResult

import celery

from .celery import app

import time

#Task loops every half second to update the current state

@task(bind=True, ignore_result=True)

def add(self):

for i in range(101):

time.sleep(0.5)

self.update_state(state="PROGRESS", meta={'current': i, 'total': 100})

在芹菜from __future__ import absolute_import, unicode_literals

import os

from celery import Celery

from django.conf import settings

# set the default Django settings module for the 'celery' program.

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yodaclaw.settings')

app = Celery('myAppName')

# Using a string here means the worker doesn't have to serialize

# the configuration object to child processes.

# - namespace='CELERY' means all celery-related configuration keys

# should have a `CELERY_` prefix.

app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django app configs.

# This allows you in shell to not have to import yodaclaw.tasks

app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

@app.task

def debug_task(self):

print('Request: {0!r}'.format(self.request))

在设置.py# Celery Settings

CELERY_BROKER_URL = 'amqp://localhost'

CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

CELERY_ACCEPT_CONTENT = ['application/json']

CELERY_ACCEPT_CONTENT = ['json']

CELERY_TASK_SERIALIZER = 'json'

CELERY_TRACK_STARTED = True

在基准.py{% load static %}

{% block title_outer %}

{% endblock %}

{% block meta %}

{% endblock %}

{% block stylesheets %}

{% endblock %}

{% block javascript %}

{% endblock %}

{% block extra_head %}

{% endblock %}

{% block body %}

{% block nav_header %}

{% endblock %}

{% block nav_sidebar %}

{% endblock %}

{% block content_wrapper %}

{% block content_header %}

{% endblock %}

{% block content_outer %}

{% block messages %}

{% endblock %}

{% block content_block_wrap %}

{% block content %}{% endblock %}

{% endblock %}

{% endblock %}

{% endblock content_wrapper %}

{% block nav_footer %}

{% endblock %}

{% if task_id %}

Task ID: {{ task_id }}

aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">

{% if task_id %} {{ task_id }} {% endif %}

{% endif %}

Click here!

{% if task_id %}

jQuery(document).ready(function() {

var PollState = function(task_id) {

jQuery.ajax({

url: "poll_state",

type: "POST",

data: "task_id=" + task_id,

}).done(function(task) {

if (task.current) {

jQuery('.progress-bar').css({'width': task.current + '%'});

jQuery('.progress-bar').html(task.current + '%');

}

else {

jQuery('.status').html(task);

};

PollState(task_id);

});

}

PollState('{{ task_id }}');

})

{% endif %}

jQuery('#do-task').click( function() {

jQuery.ajax({

url: "do_task",

data: {},

success: function(){

jQuery.ajax({

url: "",

context: document.body,

success: function(s, x) {

jQuery(this).html(s);

}

});

}

})

});

{% endblock body %}

{% block extra_foot %}{% endblock %}

python多个进度条_多个芹菜进度条相关推荐

  1. mysql导入数据显示进度条_导入数据思路+进度条

    /// ///基础数据导入/// private voidLoadBasicData() {this.NowCount = 0;this.AllCount = 0;this.hasResult = f ...

  2. 30岁人生进度条_你的人生进度条,只剩下最后的1%

    像这样整天沉迷于,追剧,打游戏,离不开手机的年轻人,在大街上,比比皆是,成群可见. 有时,看到这样一些场景,你会不禁质问: 难道,埋头守着手机玩,就真的成为了青春该有的样子吗? 难道,把大把大把,无比 ...

  3. unity3d做会减少的血条_用Unity做血条或进度条常用脚本 - 纳金网

    本节汇宝盆为大家带来的是:用Unity做血条或进度条常用脚本 * 血条或进度条的效果 用Unity3d做血条或进度条真的很方便,GUI里scrollbar就可以轻松实现,再加上lerp一个血条或进度条 ...

  4. python根据坐标点画线_拖动鼠标绘制一条线,并在opencv中获得线端点的坐标Python...

    只需使用其他事件. 这里是一个快速肮脏的解决方案: import numpy as np import cv2 btn_down = False def get_points(im): # Set u ...

  5. progressdialog进度框_使用ProgressDialog创建进度对话框

    ProgressDialog代表了进度对话框,程序只要创建ProgressDialog实例,并将它显示出来就是一个进度对画框.使用ProgressDialog创建进度对话框有如下两种方式. ①如果只是 ...

  6. mysql只能导出65535条_导出Excel超过65535条限制解决方案

    使用poi导出excel的时候如果数据过多,超过65535条会报错,因为excel2003一个sheet表最多导出65535条,excel2007是10万4000多条限制. 因此遇到这种excel导出 ...

  7. 1.4_7 Axure RP 9 for mac 高保真原型图 - 案例6 【旋转的唱片4】进度条_拖拽、点击

    相关链接 目录 Axure中文学习网 AxureShop AxureShop-QA 案例目标  1. 熟悉 动态面板 的 拖拽.点击动作的使用场景  2. 掌握 动态面板 中配置 拖拽 功能实现原理( ...

  8. python3 进度条_详细介绍Python进度条tqdm的使用

    前言 有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现 ...

  9. delphi 多个线程 多个进度条_多线程有哪些优点?- Python每日3题(多线程专题)

    这里是Python7编程挑战-多线程专题! 每天学习3个问题,包括初级,中级,高级问题各1个. 今天是第2天!一起来呀,就7天! 每日3题是麦叔的面试系列专题之一,每天包括初级,中级,高级难度题目各一 ...

最新文章

  1. big endian little endian
  2. Nginx+Apache Yii2.0 配置方案
  3. mysql学习二:sql语句分类
  4. Windows 2000、XP、XP+进程名描述
  5. oracle里面有emp表么,Oracle自带表(EMP)SQL语句练习
  6. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...
  7. Scala---For语句段
  8. 数据结构实验之查找七:线性之哈希表
  9. QML的import目录爬坑记录
  10. 2017.5.12 校门外的区间 思考记录
  11. (7)Linux进程调度-O(1)调度算法
  12. CF#213DIV2:B The Fibonacci Segment
  13. 带隙基准电压源的版图设计
  14. 适合我的前端学习路线(学习前端不迷路)
  15. 《假如给我三天光明》读后感及其摘录(2)
  16. Java表的设计合同_java毕业设计_springboot框架的基于合同管理系统
  17. 验证银行卡卡号是否符合规则
  18. 计算机网络笔试面试题目大全
  19. Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig)
  20. 王慧文复出进军人工智能,王兴投资BlockCity区块城市搞元宇宙

热门文章

  1. vue-resource
  2. css段落文字(中英文混杂)实现两端对齐
  3. 课时39.细线表格(理解)
  4. 让element-ui的输入框聚焦的4种方式
  5. 题解 P5259【欧稳欧再次学车】
  6. python web开发-flask访问请求数据request
  7. 需加装饰——装饰模式
  8. 第一次作业之成员介绍
  9. js中的this指针(二)
  10. 优化Hibernate所鼓励的7大措施