python多个进度条_多个芹菜进度条

问题

我有一个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 %}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软Silverlight,你应该知道的10件事

笔者使用Silverlight的时间比较长,一直在研究这个微软号称“Flash杀手”的工具。根据几个月的第一手体验,对它的技术方面的精华进行了总结。 随着Siverlight公众版的发布时间的日益接近,现在是时候来熟悉Silverlight以及其如何影响你的We…

Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)

拷贝jar包 找到我们的hibernate安装包,在lib目录下找到optional目录,打开c3p0文件,拷贝里面的jar包到eclipse里 写一个测试类,代码入下 public class C3P0Test {Testpublic void test() {Session s HabernateUtils.openSessi…

workerman json mysql_workerman-json-rpc

软件简介一款使用PHP开发的高性能Json Rpc框架,框架使用TCP/IP协议直接传输json数据,系统集成统计监控模块,开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。特性:使用PHP开发,与PHP紧密结合PHP 多进程…

web站点性能测试经验点滴

对web站点性能测试,从测试工具的角度,介绍几点经验。 1、在执行客户端并发性能测试的过程中,需要同时监控数据库服务器、web服务器以及网络资源等使用情况,以便对系统的性能做全面评估。 2、录制的脚本需要编辑,有时需…

Hibernate的CURD操作

1、保存:Session的save方法 Testpublic void testSave() {Customer c new Customer();c.setCustName("测试");Session s HibernateUtils.openSession();Transaction t s.beginTransaction();s.save(c);t.commit();s.close();}2、查询:Sess…

thinkphp mysql日志_MySQL的日志基础知识及基本操作学习教程

MySQL日志主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等…

JavaScript里的两个等于号和三个等于号的区别

1、两个等于号: 它在作比较时会尝试自动转换 比如下面的程序:输出为true var sNum "10";var iNum 10;alert(sNum iNum) //弹出为truesNum是string类型,iNum是number类型,sNum会尝试转换,sNum转换成number…

spring boot 集合mysql_Spring boot整合mysql和druid

Spring boot整合mysql和druid集成mysql数据库引入依赖mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-jdbc添加数据库配置Spring boot项目的resources目录下的applicataion.properties# datasourcespring.datasource.urljdbc:mysql://127.0.0.1…

在博客里轻松使用LaTeX 数学公式[转]

笔者最近的博文有不少数学相关内容,发现利用一些网上服务、jQuery和CSS,可以更轻松地在博客里使用语法排版方程式。是基于的排版系统。而就是美国著明计算机教授高德纳(Donald E. Knuth),为了编写他的巨著《计算机程序设计艺术(The Art of Co…

Hibernate持久化对象的状态:瞬时状态、持久化状态、托管状态

瞬时状态:对象由new操作符创建,但没有和session关联,也就是我们刚刚创建的对象,还没有保存到数据库中去持久化状态:对象被保存到数据库中去了,并且还与session有关联托管状态:对象已经被保存中去…

oracle查看所有用户_Oracle实用命令查看共用一个表空间的所有用户

概述有朋友问到如何查出表空间都被哪些用户使用的一些方法,因为有几种情况需要考虑,也顺便做个总结。需求:如何查看共用一个表空间的所有用户查看某表空间下表的所有者使用dba用户查询:1、如果先要知道表空间的命名,可…

Hibernate中把Session和线程绑定的配置

我们一开始用session都用HibernateUtil工具类获得Session对象,因为该工具类可以保证将线程不安全的Session绑定到当前线程内,但每次返回的对象都是一个新的session,我写了一个测试方法如下: Testpublic void test() {Session s1 …

lpt监控安装_lpt1(如何在lpt1端口安装打印机)

LPT就是俗称的并口,一般电脑只有一个并口,设备管理器里面显示为LPT1,打印机常见的端口就是LPT口和USB口,新的主板很多已经取消了板载LPT接口,还有少数专.是用网线连接电脑的接口吗??&#xff1f…

awk 多文件操作2种实现方法

我们经常会将2个有关联文本文件进行合并处理。分别从不同文件获取需要的列,然后,整体输出到一起。awk进行多文件处理时候,常常会遇到2个方面问题,第一个是怎么样合并多个文件为一个文件。第二个问题就是怎么样将多行合并为一行显示…

mysql 3.5安装_MYSQL学习笔记-06-搭建数据库

文章内容输出来源:拉勾教育Java高薪训练营1. 安装说明基于Ubuntu Linux系统安装,MySQL版本是5.7.29。安装方式是通过官网下载相应的tar.gz压缩包进行安装。这种方式需要自己动手的部分比较多,如配置文件的设计、环境变量的配置、开机启动服务…

Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询

hql语句和sql语句不同,当我们使用hql语句查询时,要把SQL语句的表写成 实体类的类名,字段写成实体类的属性 基本查询:查出数据库中所有的数据 代码如下: //基本查询,查询所有的实体Testpublic void test1() {//获取当…

【转】小周立波张冯喜引爆达人秀 小童星家居照大曝光

原文地址:http://www.soufun.com/news/2010-10-13/3897753.html 小小年纪,一身西装,发式清爽,腔调十足,有观众说她“天才有余,天真不足”,她自己说“进演艺圈太累了”,刚踏进演艺圈就…

mysql命令教学_mysql常用命令有什么

mysql常用命令有:1、“create database name;”;2、“use databasename;”;3、“drop database name”;4、“show tables;”;5、“select version”等等。MySQL 数据库常用命令1、MySQL常用命令create database name; …

Struts2一对多配置

在多表映射配置时,我们应该遵循以下不步骤: 确定两张表之间的关系在数据库中实现两张表之间的关系建立在实体类中描述出两个实体类之间的关系在映射配置文件中建立两个实体和两张表之间的关系 我们就按照上面的步骤做,我这里有一张联系人表和…

调整和改编赛车游戏——游戏屏幕

游戏屏幕 赛车游戏中有很多不同的游戏屏幕,这些都是由RacingGame类中的gameScreens堆栈管理的。本节介绍游戏中使用的大部分屏幕和对应的功能。大多数游戏屏幕相当简单,但其他的有点复杂并实现了一个单元测试,通过单元测试能更好地了解这个类…