不算完美的实现了自动化部署的进度实时更新

简介:

呵呵,思路比较明确,但实现时的JS确实麻烦。

想过用ANGULAR.JS,但不太熟悉。

以前用的JS函数setInterval() 有时停不下来。

后来,看那书上说setTimeout() 可以实现所有setInterval() 功能。

然后,再用promise的then功能来实现先后顺序。。

搞定。。。

短期内不会更新这个版本的进度提示啦。

复制代码
function resetPercent(id_data){
        $.ajax({
              url:'/a/reset_percent/' + id_data,
              success: function(json){
                },
            });
    };

    $(".btn-multi-deploy").click(function(){

          var group_data = $("#deploy-form").serialize();
          var deploy_type = $(this).attr("deploy_type");
          var _self = this;

          var id_array = []
          var id_s_array = []
          var group_array = group_data.split("&");
          for (var key_data in group_array) {
            if (group_array[key_data].indexOf("deployversion_id") != -1) {
                deploy_id = group_array[key_data].split("=")[1]
            };
            if (group_array[key_data].indexOf("check-server") != -1) {
                id_array.push(group_array[key_data].split("=")[1])
            };
          };

          var promiseDEPLOY = $.ajax({
            url:'{% url "autodeploy:deploy-group-cmd-v2" %}',
            type: 'post',
            data:{
                group_cmd: group_data,
                deploy_type: deploy_type,
            },
            dataType: 'json',
            beforeSend: function(){
                $(_self).attr('disabled',"true");
                $(_self).append(" <i class='uk-icon-cog uk-icon-spin'></i>");

                for( index=0;index < id_array.length;index++){
                    resetPercent(id_array[index]);
                }
            },
            success: function(json){
                $(_self).children('i').remove();
                $(_self).append(" <i class='uk-icon-cog uk-icon-spin'></i>")


            },
            error: function(){
                $(_self).children('i').remove();
            },
            complete: function(){
                $(_self).children('i').remove();
                $(_self).append(" <i class='uk-icon-check'></i>")
            }
          });/* end promiseDEPLOY stop */

      promiseShowStatus = promiseDEPLOY.then(function(){

        for( index=0;index < id_array.length;index++){
                var key = id_array[index];
                queryStatus(key);
            }

            function queryStatus(id_subserver){
                $.getJSON("/api/subserver/"+id_subserver,
                    function(data,state){
                        if (state == 'success') {
                            var percent_value,
                                cmd_value;
                            percent_value_array = data.deploy_status.split(",");
                            percent_value = percent_value_array[0];
                            cmd_value = percent_value_array[1];
                            $('#' + id_subserver).html("<div class='uk-progress uk-progress-striped uk-progress-active'><div class='uk-progress-bar' style='width: " + percent_value + "%;'>" +  cmd_value + ' ' + percent_value + "%</div><i class='uk-icon-cog uk-icon-spin'></i></div>");

                                if ( percent_value > 98 ){
                                     $('#' + id_subserver).html("<div class='uk-progress uk-progress-striped uk-progress-success'><div class='uk-progress-bar' style='width: " + percent_value + "%;'>100%</div></div>");
                    clearTimeout(st_func);
                                };

                            };
                    }
                );
            console.log('queryStatus...'+id_subserver);
            var st_func = setTimeout(function(){queryStatus(id_subserver)}, 3000);
        }
      });

    });
复制代码

目录
相关文章
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
470 4
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1552 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
587 4
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
377 4
|
运维 监控 安全
从实践到自动化:现代运维管理的转型与挑战
本文探讨了现代运维管理从传统人工模式向自动化转型的必要性与路径,分析了传统运维的痛点,如效率低、响应慢、依赖经验等问题,并介绍了自动化运维在提升效率、降低成本、增强系统稳定性与安全性方面的优势。结合技术工具与实践案例,文章展示了企业如何通过自动化实现运维升级,推动数字化转型,提升业务竞争力。
|
机器学习/深度学习 人工智能 运维
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
717 14
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
1012 34
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
817 11