1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.1.6.3 | 定时任务、管道任务、API任务、数据服务应用禁止被多人同时编辑 |
1.2 应用场景
一个任务同时被多人打开编辑时,先保存的内容会被之后保存的内容覆盖,导致前者开发内容被误删。
1.3 功能简介
提供任务编辑锁,定时任务、管道任务、API任务、数据服务应用禁止被多人同时编辑。
用户编辑某个任务时,其他用户也打开该任务,则会提示:当前任务/API/应用正在被XX编辑,其他人无法编辑该任务,只能查看。如下图所示:
2. 编辑锁出现场景
作用对象:定时任务、管道任务、API任务、数据服务应用。
编辑锁出现场景:
多人打开同一个定时任务/管道任务/API任务/数据服务应用。
单人打开多个相同浏览器tab界面/不同浏览器界面。
3. 功能说明
3.1 数据开发
3.1.1 任务编辑锁对象:定时任务
1)若一个定时任务正在被 A 编辑,B、C 用户打开该任务时,提示:当前任务正在被 A 编辑,B、C 无法编辑该定时任务,只能查看任务。如下图所示:
2)当 A 用户退出编辑且未保存,B、C 编辑界面显示:A退出编辑;B、C 谁先抢到到编辑(工程自动获取)谁就能获取编辑权限;若 B 获得编辑权限,C 用户的界面显示:当前任务正在被B编辑
3)当用户退出编辑且保存,其他人编辑界面显示:XX退出编辑、当前任务存在最新配置,请及时刷新。如下图所示:
谁先点击「刷新」按钮,谁就能抢到编辑权限。
3.1.2 任务编辑锁对象:工具栏
若一个定时任务正在被编辑,其他人工具栏中的保存、运行按钮失效。如下图所示:
编辑锁出现时,工具栏说明如下:
1)任务名、调度计划、任务控制不受编辑锁影响,使用先后覆盖逻辑。
2)编辑锁状态下,参数列表仅支持查看。
3.1.3 任务编辑锁对象:定时任务列表
若一个定时任务正在被编辑,其他人可以对这个任务重命名、移动。如下图所示:
说明如下:
1)「重命名」、「移动到」不受编辑锁影响,使用先后覆盖逻辑;「导出」功能可以正常使用。
2)若一个定时任务正在被编辑,其他人不能删除该任务。
3.2 管道任务
注:若一个管道任务正在被编辑,其他人不能删除该任务。
1)用户 A 正在编辑管道任务时,B、C 用户打开该任务时,提示:当前任务正在被 A 编辑,B、C 用户仅支持查看,所有配置项置灰。如下图所示:
2)当 A 退出编辑且保存时,B、C用户界面提供「刷新」按钮,点击后,刷新界面为最新保存的配置。如下图所示:
谁先点击「刷新」按钮,谁就能抢到编辑权限。
3)当 A 用户退出编辑且未保存,B、C 编辑界面显示:A退出编辑;B、C 谁先抢到到编辑(工程自动获取)谁就能获取编辑权限;若 B 获得编辑权限,C 用户的界面显示:当前任务正在被B编辑
3.3 数据服务
注:若一个API任务/应用正在被编辑,其他人不能删除。
3.3.1 任务编辑锁对象:API 任务
1)用户 A 正在编辑 API 时,B、C 用户打开该任务时,提示:当前API正在被 A 编辑,B、C 用户仅支持查看,所有配置项置灰。如下图所示:
注:B、C用户可正常使用「查询预览」、「测试调用」按钮。
2)当 A 退出编辑且保存时,B、C用户界面提供「刷新」按钮,点击后,刷新界面为最新保存的配置。如下图所示:
谁先点击「刷新」按钮,谁就能抢到编辑权限。
3)当 A 用户退出编辑且未保存,B、C 编辑界面显示:A退出编辑;B、C 谁先抢到到编辑(工程自动获取)谁就能获取编辑权限;若 B 获得编辑权限,C 用户的界面显示:当前API正在被B编辑
4)用户 A 正在编辑 API 时,其他用户不能上下线 API 。如下图所示:
5)单人打开多个相同浏览器tab界面/不同浏览器界面,在同一个目录下新建 API 任务时,后建的任务会进入编辑锁界面。如下图所示:
3.3.2 任务编辑锁对象:应用
1)用户 A 正在编辑应用时,B、C 用户打开该应用时,提示:当前应用正在被 A 编辑,B、C 用户仅支持查看,所有配置项置灰。如下图所示:
2)当 A 用户退出编辑且未保存,B、C 编辑界面显示:A退出编辑;B、C 谁先抢到到编辑(工程自动获取)谁就能获取编辑权限;若 B 获得编辑权限,C 用户的界面显示:当前应用正在被B编辑
3)当用户退出编辑且保存,其他人编辑界面显示:XX退出编辑、当前任务存在最新配置,请及时刷新。如下图所示:
谁先点击「刷新」按钮,谁就能抢到编辑权限。
3.4 异常场景说明
异常场景 | 处理策略 |
---|---|
用户 A 打开定时任务,此时 A 用户断开了网络,用户 B 也打开这个定时任务 | 用户 A 断网重连时:
|
A 用户正在编辑定时任务,B 用户进入查看模式,然后 A 用户退出编辑,但 B 用户界面依然显示有锁 | 管理员打开该任务,可解锁: |
A 用户编辑任务 1 时,B用户正在修改/删除任务 1 所引用的任务/数据连接/服务器数据集等被引用配置 | 无锁,任务 1 点击保存时,会触发配置丢失校验 |
A 用户在任务 1 编辑界面将任务 1 改名为任务 2 ,还未保存,B 用户在任务列表将任务 1 改名为任务 3 ,最后A用户保存该任务 | A 用户是最后保存的,最终任务 1 改名为任务 2 |