赞
踩
DolphinScheduler调度平台的UI界面加载缓慢,项目中的任务实例加载时间过长,需要解决这个问题,提高DolphinScheduler平台UI页面的加载速度。
经过分析发现,任务实例过多是导致UI加载缓慢的主要原因。由于任务实例无法直接删除,根据文档了解到需要删除相应的工作流实例。删除工作流实例后,相关的任务实例和日志会自动被删除。然而,手动删除工作流实例耗时较长,因此不是一个有效的解决方案。为了提高效率,可以利用DolphinScheduler提供的API接口来实现删除操作,然后在DolphinScheduler平台上设置一个定时任务,定期清理工作流实例。可以编写Shell脚本或Python脚本来实现清理逻辑。
根据DolphinScheduler的API文档,进程实例(Process Instance)对应着UI页面中的工作流实例。因此,通过定时清理过期的进程实例,可以有效优化DolphinScheduler平台的UI加载速度。
创建令牌步骤如下:
查看DolphinScheduler的API文档,文档地址:http://localhost:12345/dolphinscheduler/swagger-ui/index.html。
找到进程实例相关操作的API,可以看到有两个进行删除操作的API,选择批量删除的接口/dolphinscheduler/projects/{projectCode}/process-instances/batch-delete
来执行删除操作。
需要两个参数。
可以从/dolphinscheduler/projects/{projectCode}/process-instances
接口获取进程实例的相关信息。
需要三个参数。
找到项目相关操作的API,可以使用/dolphinscheduler/projects/list
获取所有项目的一个列表信息,可以根据其中的项目名获得项目代码。
此代码将会清理所有项目4个月前1号到3个月前1号
的工作流实例。
#!/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}"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。