数据同步方案

一、相关数据表都需要增加分控端标识、是否同步标识,同步时间。涉及的表如下:

表名 分控段标识 同步标识 同步时间 备注
stp_ks_exam ctl_code sync_flag sync_time
stp_ks_exam_answer_bak_del ctl_code sync_flag sync_time
stp_ks_exam_details ctl_code sync_flag sync_time
stp_ks_exam_marking ctl_code sync_flag sync_time
stp_ks_exam_marking_state ctl_code sync_flag sync_time
stp_ks_exam_obj ctl_code sync_flag sync_time
stp_ks_my_course ctl_code sync_flag sync_time
stp_ks_my_courseware_study ctl_code sync_flag sync_time
stp_ks_my_exam ctl_code sync_flag sync_time
stp_ks_my_exam_answer ctl_code sync_flag sync_time
stp_ks_my_exam_result ctl_code sync_flag sync_time
stp_ks_my_exam_result_item ctl_code sync_flag sync_time
stp_ks_my_exam_result_opt ctl_code sync_flag sync_time
stp_ks_operate_detail ctl_code sync_flag sync_time
stp_ks_operate_record ctl_code sync_flag sync_time
stp_ks_operate_step_score ctl_code sync_flag sync_time
stp_ks_paper ctl_code sync_flag sync_time
stp_ks_paper_question ctl_code sync_flag sync_time
stp_ks_user_course ctl_code sync_flag sync_time 确认服务是否使用,不适用及时删除
stp_ks_user_remind ctl_code sync_flag sync_time
stp_ks_work_manage ctl_code sync_flag sync_time
stp_log ctl_code sync_flag sync_time
stp_ks_exam_answer_bak_del ctl_code sync_flag sync_time
stp_operation_seat ctl_code sync_flag sync_time
stp_scheme_manage ctl_code sync_flag sync_time
stp_training_data ctl_code sync_flag sync_time 确认服务是否使用,不适用及时删除
stp_user_register ctl_code sync_flag sync_time 确认服务是否使用,不适用及时删除
stp_virtual_classrooms ctl_code sync_flag sync_time
stp_virtual_classrooms_add ctl_code sync_flag sync_time
stp_virtual_classrooms_scheme ctl_code sync_flag sync_time
stp_zy_my_exam ctl_code sync_flag sync_time
stp_zy_my_exam_answer ctl_code sync_flag sync_time
stp_zy_my_exam_result ctl_code sync_flag sync_time
stp_zy_my_exam_result_item ctl_code sync_flag sync_time
stp_grades ctl_code sync_flag sync_time
stp_user_extend sync_flag sync_time 确认服务是否使用,不适用及时删除
stp_user_register sync_flag sync_time

二、创建同步记录服务,显示同步记录。集控端和分控端都需要有

  1. 分控端显示自己同步的记录,另外有打包按钮,用于离线同步使用,导入按钮,用于导入集控端的数据。 分控端的同步记录主要包含两种,一种是导入的集控端数据记录,一种是集控端主动同步的记录。主控端在线同步的时候会在分控端这里生成一条记录。
  2. 集控端显示所有分控端同步的记录,以及集控端主动同步分控端的记录。

三、增加分控列表服务。

用于显示分控列表,服务属性酌情添加,但是确保有字段标识分控系统是否在线,可以是自定义字段,因为在线状态是实时的。增加行级别按钮“同步”。用于主动同步在线的分控数据。增加表格的按钮“导入”,导入分控同步数据。

四、同步

只有集控端有同步功能,同步又分为上行同步和下行同步。上行同步是把分控系统的数同步到集控中,下行同步,是把集控的设置数据同步到分控端。同步都是在线时可用,分控端离线不可用。

1、分控与集控互通时,分控的数据实时上传到集控。

2、上行同步

  把分控端未同步的数据同步到集控端,同步成功后把数据设置为已同步,下次同步时忽略掉已同步的数据。同步的数据主要为(一)中包含的服务。前端需要有个同步清单,点击同步时每一个服务同步完成要实时显示已经完成。我们设计的时候会在每个一个对应的服务创建一个同步方法,前端顺序调用同步方法,同步成功后根据后端返回的消息来显示是否统计成功,然后顺次往下调用。---- 每个服务对应的扩展类都会增加一个方法:syncData,调用这个syncData就会把对应的数据同步到集控端。

3、下行同步

  下行同步主要是把集控的设置数据下发给分控端(不包括文件,文件不能通过在线形式同步,只能通过打包离线的方式同步)。集控下发给分控的服务包含以下:
服务 服务说明 说明
stp_ankg_csb 按钮开关参数子表
stp_asnt_stad 操作步骤 确认是否使用,不使用即时删除服务和表
stp_bdkg_csj 拨动开关参数子表
stp_cable 接线管理
stp_cable_box 线缆箱
stp_cable_box_sub 线缆箱子表
stp_check_csb 检查类参数表
stp_dg_csjxx 灯光参数集
stp_drive_obj_link 业务驱动连接线
stp_drive_object 驱动关联对象库
stp_drive_param_link 连接线参数映射
stp_equip 装备
stp_equip_gjcdlb 触点列表
stp_equip_role 装备角色
stp_equip_structure_tree 装备结构树
stp_freely_object 自由对象表
stp_freely_object_disable 自由对象禁用
stp_gear_lcxzs_list 连续旋转式旋钮开关参数
stp_gear_list 分档式旋钮开关档位列表
stp_gjx_manage 工具箱
stp_gjx_manage_csb 工具箱管理参数
stp_jxbz_csj 机械表针参数集
stp_ks_knowledge 知识点清单管理
stp_ks_question 题库
stp_ks_question_knowledge 题库关联知识点
stp_ks_tags 标签管理
stp_led_csb led屏幕子表
stp_mct_csj 门抽屉参数
stp_monitor_led LED屏幕
stp_monitor_pt 显示屏普通屏幕
stp_node_jbxx 节点基本信息
stp_node_qtxx 节点额外信息
stp_node_tsxx 节点提示信息
stp_obj_drive_dhcs 动画类型参数表
stp_obj_type_library 对象类型库
stp_obj_type_manage 对象类型管理
stp_obj_type_name 对象类型名称表
stp_obj_zzztzxz 对象、最终状态值
stp_operat_monit 操作监控 确认是否使用,不使用即时删除服务和表
stp_operation_seat 操作席位
stp_port 端口表
stp_port_jk 接线接头表
stp_regulate_sub 调节按钮参数子表
stp_roam_object 漫游对象表
stp_scheme_manage 训练方案
stp_sound_manage 声音信息管理
stp_state_list 状态列表
stp_subject 训练科目管理 这个服务确认是否在用,不用的及时删除
stp_subject_list 科目管理
stp_subject_node_link stp_subject_node_link
stp_syonggj_csj 所选工具端口参数表
stp_template_list 模版文件管理
stp_terminal 端子表
stp_training_data 训练数据表
stp_ui_csb ui确认参数表
stp_ui_obj ui对象
stp_uics_ywobj ui界面参数表业务对象库
stp_wiring 接线表
stp_ywquk 业务驱动库
sy_comm_file 文件表
sy_serv_dict 字典表
sy_serv_dict_item 字典内部详细信息表
sy_serv 服务定义相关表
sy_serv_act 服务定义相关表
sy_serv_act_acl 服务定义相关表
sy_serv_act_param 服务定义相关表
sy_serv_flow 服务定义相关表
sy_serv_item 服务定义相关表
sy_serv_link 服务定义相关表
sy_serv_link_item 服务定义相关表
sy_serv_listener 服务监听
sy_serv_query 查询策略表
sy_serv_where 服务过滤规则

五、关于用户数据的同步问题说明及同步思路

分控系统可以注册,学员信息有单独的保存,所以同步学员的数据目前应该不存在问题。在分控系统中创建的学员信息可以在集控端统一删除后,把分控的学员信息都导入。但是对于其他的账号教员管理员这些账号可能在集控或者其他分控系统中存在,同步的时候会把其他账号重置,所以目前的一个思路是,各个分控系统的用户账号之间不重叠。都只有自己的,不能互相登录,并且分控系统中不能有"admin"账号,或者要排除admin账号的同步。如果账号通用,那么可能就会出现一个分控系统修改密码 会被其他分控未修改的同步后给重置,也会把修改后的同步到其他分控。

六、关于集控下行同步的说明

集控下行同步时,会把分控中对应的表的数据清空,然后把数据全部插入到分控系统中,所以在同步时,要有个通知,同步过程中对应的分控系统不能做任何操作。集控系统在同步时可以给分控系统发送ws消息,分控系统是否可以根据收到的ws消息,给所有的登录用户做出禁止操作的提示以及功能,这个需要前端确认下。

七、关于离线同步的一些说明

离线同步主要分为数据库的同步和文件同步,数据库数据同步可以把同步的数据存储成sql文件,打包后在分控端或者在集控端执行。集控端打包的文件可能比较大,会超过几十G大小,打包过程很慢,中间可能因为长时间在打包,系统线程一直在等待,有可能会超时。解压过程也会很慢。所以关于文件的同步,建议不通过系统,人工打包解压到指定地方。

八、关于虚拟教室在集控中控制分控的说明

目前控制虚拟教室的操作都是在虚拟教室的服务里控制完成,需要登录权限,如果在及空中控制分控的虚拟教室操作则要公开对应的操作到公用的Controller中,或者创建一个不需要权限的服务中,来调用对应的方法。同时要在调用前验证是集控端发送的命令,除了集控端的命令,其他调用的命令都直接拒绝。

九、配置文件修改

1、集控系统配置文件增加配置

 stp:
  ctrl:
   type: main

2、分控系统配置文件增加配置

stp:
 ctrl:
  type: sub
  code: 分控标识
  main-address: http://{集控ip}:{port}/{集控相对路径}
花括号是变量填写实际值即可。如果分控系统的ip不变,那在集控那里维护分控列表要把ip填上 这样能区分分控,如果分控ip不固定,则需要给分控生成一个固定的标识符,保存在集控的分控服务里,这样在分控连接主控的时候把标识带入就可以区分是那个分控系统了。同时分控的配置文件上也要增加这个标识。

results matching ""

    No results matching ""