DolphinScheduler运维-页面加载缓慢

news2024/11/28 4:43:10

一、问题描述

DolphinScheduler调度平台的UI界面加载缓慢,项目中的任务实例加载时间过长,需要解决这个问题,提高DolphinScheduler平台UI页面的加载速度。


二、原因分析

经过分析发现,任务实例过多是导致UI加载缓慢的主要原因。由于任务实例无法直接删除,根据文档了解到需要删除相应的工作流实例。删除工作流实例后,相关的任务实例和日志会自动被删除。然而,手动删除工作流实例耗时较长,因此不是一个有效的解决方案。为了提高效率,可以利用DolphinScheduler提供的API接口来实现删除操作,然后在DolphinScheduler平台上设置一个定时任务,定期清理工作流实例。可以编写Shell脚本或Python脚本来实现清理逻辑。

根据DolphinScheduler的API文档,进程实例(Process Instance)对应着UI页面中的工作流实例。因此,通过定时清理过期的进程实例,可以有效优化DolphinScheduler平台的UI加载速度。


三、解决方案

1. 设置API访问令牌

创建令牌步骤如下:

在这里插入图片描述

2. 逻辑分析

2.1 查找用于删除的API

查看DolphinScheduler的API文档,文档地址:http://localhost:12345/dolphinscheduler/swagger-ui/index.html。
找到进程实例相关操作的API,可以看到有两个进行删除操作的API,选择批量删除的接口/dolphinscheduler/projects/{projectCode}/process-instances/batch-delete来执行删除操作。
需要两个参数。

  • processInstanceIds:进程实例id的数组,用逗号分隔
  • projectCode:项目代码

在这里插入图片描述

2.2 获取进程实例id的数组

可以从/dolphinscheduler/projects/{projectCode}/process-instances接口获取进程实例的相关信息。
需要三个参数。

  • pageNo:当前页
  • pageSize:每页多少条数据
  • projectCode:项目代码
    在这里插入图片描述

2.3 获取项目代码

找到项目相关操作的API,可以使用/dolphinscheduler/projects/list获取所有项目的一个列表信息,可以根据其中的项目名获得项目代码。

3. 代码实现

此代码将会清理所有项目4个月前1号到3个月前1号的工作流实例。

3.1 shell代码实现

#!/bin/bash

# 认证令牌
token='5c7437968f5d4492dc694902d6e6847f'
# 链接
url='http://localhost:12345/dolphinscheduler'
# 每页多少条
page_size=10

# 三个月前日期时间
three_month_ago_datetime=$(date -d "-3 months" '+%Y-%m-01')
# 四个月前日期时间
four_month_ago_datetime=$(date -d "-4 months" '+%Y-%m-01')

# 获取所有项目名称
project_names=($(curl -X GET -H "token: ${token}" "${url}/projects/list" | jq -r '.data[] | "\(.name)"'))

# 循环获取项目名
for project_name in "${project_names[@]}"
do
  echo "************************** 项目名: ${project_name} **************************"
  # 根据项目名获取项目代码
  project_code=$(curl -X GET -H "token: ${token}"

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

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

相关文章

基于docker+rancher部署Vue项目的教程

基于dockerrancher部署Vue的教程 前段时间总有前端开发问我Vue如何通过docker生成镜像,并用rancher上进行部署?今天抽了2个小时研究了一下,给大家记录一下这个过程。该部署教程适用于Vue、Vue2、Vue3等版本。 PS:该教程基于有一定…

UART动态调整接收时钟

文章目录 一、UART接收模块误码率二、接收时钟动态纠正方法2.1、过采样2.2、上板效果 一、UART接收模块误码率 由于发送端和接收端存在一定的频率误差,随着时间的推移,累计误差不断增加,从而产生亚稳态现象,会导致误码&#xff0…

【Vue3】组件通信以及各种方式的对比

方式一&#xff1a;props 「父」向「子」组件发送数据 父组件&#xff1a; 定义需要传递给子组件的数据&#xff0c;并使用 v-bind 指令将其绑定到子组件的 props 上。 <template><child-component :message"parentMessage" /> </template><sc…

3.19网络编程

select实现的TCP并发服务器 #include <myhead.h> #define SER_IP "192.168.141.134" #define SER_PORT 8888 int main(int argc, const char *argv[]) {// 1、创建一个套接字int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0);if (sfd -1){perr…

【leetcode热题】 地下城游戏

恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0…

TSINGSEE青犀数字化、智能化视频技术推动森林防火智慧监管

一、背景分析 中央网络安全和信息化委员会印发《“十四五”国家信息化规划》&#xff0c;明确指出“提升林草生态网络感知能力&#xff0c;完善生态系统保护成效数字化监测评估体系”。这为数字化系统建设引领了方向&#xff0c;中国林业信息化建设迈入了新的阶段&#xff0c;全…

六、C#快速排序算法

简介 快速排序是一种常用的排序算法&#xff0c;它基于分治的思想&#xff0c;通过将一个无序的序列分割成两个子序列&#xff0c;并递归地对子序列进行排序&#xff0c;最终完成整个序列的排序。 其基本思路如下&#xff1a; 选择数组中的一个元素作为基准&#xff08;pivot…

绝地求生:现在购买通行证还能兑换成长型武器吗?

大家好&#xff0c;我闲游盒&#xff0c;这几天收到几位盒友的私信咨询我现在购买通行证还能获得一把成长型武器吗&#xff1f;我相信还有许多盒友也有此困惑&#xff0c;那我就在这统一回复了&#xff0c;目前距通行证和商城物资箱礼包下架还有最后16天时间&#xff0c;众所周…

fs方法举例

fs.readFile() 读取文件 const fs require(node:fs) const path require(node:path) const s path.resolve(__dirname, ./hello.txt) const buf fs.readFileSync(s) console.log(buf.toString())输出的Buffer对象 用toString()方法转字符串之后 fs.appendFile() 创建新…

Vue项目使用process.env关键字及Vue.config.js配置解决前端跨域问题

1.process.env 是Node.js 中的一个环境 1.打开命令行查看环境: 2.process.env与Vue CLI 项目 Vue Cli 有以下三种运行模式 development 模式用于 vue-cli-service serve test 模式用于 vue-cli-service test:unit production 模式用于 vue-cli-service build 和 vue-cli-se…

Java设计模式 | 简单工厂模式

概述 需求 设计一个咖啡店点餐系统设计一个咖啡类&#xff08;Coffee&#xff09;&#xff1b;并定义其两个子类&#xff08;美式咖啡AmericanCoffee和拿铁咖啡LatteCoffee&#xff09;&#xff1b;再设计一个咖啡店类&#xff08;CoffeeStore&#xff09;&#xff0c;其具备…

【开源】SpringBoot框架开发不良邮件过滤系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统用户模块2.2 收件箱模块2.3 发件箱模块2.4 垃圾箱模块2.5 回收站模块2.6 邮箱过滤设置模块 三、实体类设计3.1 系统用户3.2 邮件3.3 其他实体 四、系统展示五、核心代码5.1 查询收件箱档案5.2 查询回收站档案5.3 新…

玩转C语言——深入理解指针

一、指针概念 1.1 内存和地址 在开始学习指针前&#xff0c;我们先来讲一个例子&#xff0c;假如你身处一栋楼中&#xff0c;你点了一份外卖&#xff0c;那么&#xff0c;外卖员如何能找到你&#xff1f;有两种方法。法一&#xff1a;直接一间一间找&#xff0c;这样做不仅消耗…

数据结构(三)复杂度的深层次剖析

之前发布了数据结构&#xff08;一&#xff09;&#xff0c;很多同学反响不够清晰&#xff0c;那今天就发一篇对复杂度专题的博客&#xff0c;希望对大家理解复杂度提供一些帮助。 时间复杂度 我们先来一个理解一个复杂度&#xff0c;二分查找的复杂度&#xff08;之前写过二…

JSONP 实现跨域请求案例

后端使用 express 搭建&#xff0c;案例代码如下&#xff1a; const express require(express)const app express() const PORT 3000app.get(/data, (req, res) > {const jsonData {name: Alan,age: 666,city: GD}const callback req.query.callback // 获取前端中的回…

野火ESP8266模块开发-基于Arduino IDE

一、野火ESP8266模块介绍 ESP8266 拥有高性能无线 SOC&#xff0c;给移动平台设计师带来福音&#xff0c;它以最低成本提供最大实用性&#xff0c;为 WiFi 功能嵌入其他系统提供无限可能。ESP8266 是一个完整且自成体系的 WiFi 网络解决方案&#xff0c;能够独立运行&#xff0…

网络工程师之路由交换技术篇

网络工程师之路由交换技术篇 路由交换之技术篇ARPICMPBPDUIPv6IP编址MAC其他技术点参考 以下均为个人笔记&#xff0c;摘录到csdn做备份 路由交换之技术篇 ARP Operation Code指定了ARP报文的类型&#xff0c; 包括ARP request 和ARP reply&#xff1b;取值为1或者2 &#x…

计算机毕业设计-基于深度学习的验证码识别方法设计与实现

概要 验证码是一个系统区分人类与非人类行为的有效方式。验证码识别技术能够使计算机程序输入正确的验证码&#xff0c;伪装成人类用户进入目标系统。另一方面&#xff0c;系统方面需要考虑破解验证码识别技术&#xff0c;修补验证方式的可能漏洞&#xff0c;使之能够更有效地区…

返回a除以b的余数 operator.mod(a, b) 返回a的b次幂 operator.pow(a, b)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 返回a除以b的余数 operator.mod(a, b) 返回a的b次幂 operator.pow(a, b) [太阳]选择题 请问以下程序中operator.pow(2, 3)的执行结果是&#xff1a; import operator print("【执行】ope…

springboot284基于HTML5的问卷调查系统的设计与实现

问卷调查系统的设计与实现 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;问卷信息因为其管理内容繁杂&#xff0c;管理数量繁多导…