热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OptimizenpmInstallRetryTimeinBranch0.7

Thispullrequestaimstooptimizethenpminstallretrytimeinbranch0.7,reducingdelayscausedbylongtimeoutswhennonetworkconnectionisavailable.

Purpose of This Pull Request

This pull request targets branch 0.7 and addresses the issue of excessive delay during npm install when the machine is not connected to any network. The root cause is the lengthy retry timeout configured for npm install operations. This PR introduces a reduction in the retry timeout to mitigate these delays. It is related to the master branch PR: https://github.com/apache/zeppelin/pull/2095.

Type of Pull Request

Enhancement

Jira Issue

https://issues.apache.org/jira/browse/ZEPPELIN-2094

Testing Instructions

To test this change, you need to have at least one Helium visualization enabled. The specific changes can be found on line 221 of the file zeppelin-zengine/org.apache.zeppelin.helium.HeliumVisualizationFactory.java.

First, configure the npm install command as follows:

1
String commandForNpmInstall = "install --loglevel=error";

Then, disconnect from all network connections and perform a build and run operation.

Next, modify the command to include custom retry parameters:

1
2
3
4
String commandForNpmInstall =
String.format("install --fetch-retries=%d --fetch-retry-factor=%d "+
"--fetch-retry-mintimeout=%d",
FETCH_RETRY_COUNT, FETCH_RETRY_FACTOR_COUNT, FETCH_RETRY_MIN_TIMEOUT);

Again, ensure there is no network connection, and then build and run the application.

Additionally, perform the same steps on line 345, where an npm install operation for a specific artifact is executed.

Explanation of Parameters

The following table explains the impact of the changes made to the retry parameters:

DescriptionBeforeAfter
Conditionnpm's default settingsCustom settings
Random factorFalse = 1False = 1
Retry count22
Minimum timeout (sec)105
Maximum timeout (sec)6060
Factor101
First retry calculationMath.round(1 * 10 * 10^1)Math.round(1 * 5 * 1^1)
First retry result (approx.)100 sec5 sec
Second retry calculationMath.min(Math.round(1 * 10 * 10^2), 60)Math.min(Math.round(1 * 5 * 1^2), 60)
Second retry result (approx.)60 sec5 sec
Total waiting time (approx.)160 sec10 sec

These changes significantly reduce the total waiting time for npm install operations when no network is available.

Screenshots

Below are screenshots comparing the behavior before and after the changes:

BeforeAfter
Image placeholderImage placeholder

推荐阅读
  • 本文探讨了在Git子模块目录中运行pre-commit时遇到的错误,并提供了一种通过Docker环境解决此问题的方法。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Webpack中实现环境与代码的有效分离
    本文探讨了如何在Webpack中有效地区分开发与生产环境,并实现代码的合理分离,以提高项目的可维护性和加载性能。 ... [详细]
  • Vue 项目构建与部署指南
    本文将指导您完成Vue项目的构建和部署过程,包括环境搭建、项目初始化及配置、以及最终的部署步骤。 ... [详细]
  • 本文详细探讨了Xshell6评估版到期后无法使用的常见问题,并提供了有效的解决方案,包括如何合法购买授权以继续使用。 ... [详细]
  • 从 Windows 转向 Mac 的开发者指南:必备技巧与工具
    本文旨在帮助从 Windows 转向 Mac 的开发者们,提供一系列实用的技巧和工具,确保过渡过程顺畅。 ... [详细]
  • 今天我在操作Git时遇到了一个问题,即我的仓库进入了分离的HEAD状态,这与之前讨论过的‘即使本地有更改,git push仍显示所有内容最新’的问题类似。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
author-avatar
odile微笑头
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有