1. 概述
1.1 应用场景
FDL 中原先采用的数据连接名为demo1,已在大量定时任务中使用。为了规范数据连接命名,需将此数据连接名更改为fdl_demo,目前需要逐个打开定时任务并手动重新选择新命名的数据连接,操作过程比较麻烦。
鉴于定时任务数量较多,手动选择过于繁琐,本文提供一种批量替换的解决方案。
1.2 实现思路
定时任务中的数据连接名保存在 dp 文件内,来源是fromConnectionName,去向是toConnectionName。如下图所示:
可通过 java 代码实现字符串替换,直接批量替换 dp 文件内对应的数据连接名即可。
1.3 注意事项
1)本文方案需要在「资源迁移」处导出定时任务,导出的定时任务不包含 批量调度 ,使用本文方案会导致批量调度配置丢失。
2)本文方案使用了 javac 命令,所以电脑中需要安装 JDK 。
2. 示例
本文场景模拟如下:
「定时开发任务」内原使用的数据连接名为mysql,需要替换为fdl_mysql。
「数据关联Demo」内原使用的数据连接名为demo1,需要替换为fdl_demo。
2.1 导出需要修改数据连接名称的任务
1)管理员进入 FDL 工程,点击「管理系统>智能运维>资源迁移>定时任务」,将需要修改数据连接名称的任务导出。如下图所示:
2)将下载后的压缩包解压到某个文件夹下,本文示例解压到D:\lianjie中。如下图所示:
2.2 批量替换数据连接名
1)根据实际情况修改代码:
directoryPath:本文 2.1 节压缩包存放位置。需注意,需要使用两个反斜杠,D:\\lianjie
searchStrings:需要替换的字符串,也就是原数据连接名。本文示例是:mysql、demo1
replacementStrings:替换后的字符串,也就是新数据连接名。本文示例是:fdl_mysql、fdl_demo
代码示例:Java代码示例.zip
2)将修改后的 Java 文件放在某个文件夹下;cmd 中进入该文件夹,执行命令:javac FileStringReplacement.java,执行成功会生成一个 FileStringReplacement.class 文件。如下图所示:
3)再执行命令:java -cp . FileStringReplacement,运行 class 文件,运行成功此时再查看 resource 文件夹下的 dp 文件,已经成功修改。如下图所示:
2.3 资源导入覆盖原任务
1)将修改后的文件夹压缩成 zip 文件(文件名可自定义),再用 FDL 的资源迁移导入,选中要导入的文件,选择覆盖导入。如下图所示:
2)在「数据开发」中查看定时任务,发现数据连接名称已修改。