[关闭]
@andrewwang 2019-03-24T17:37:51.000000Z 字数 1178 阅读 615

终端和后端数据一致性

操作清单

频道下发,频道编辑,档期编辑,节目编辑...

流程

  1. 用户操作,操作处理,下发
  2. 启动时数据同步

用户操作

  1. 操作insert操作表
  2. 操作放到MQ
  3. if (操作 == publish(或者解绑))
  4. 发布进终端发布表

操作处理

  1. MQ获取操作
  2. 处理操作成数据下发记录(当前所有的操作,数据都是频道明细)
  3. insert下发回执表

下发

  1. 从下发回执表获取本终端的所有数据下发记录
  2. 下发

启动时数据同步

终端启动时同步数据,确保一致性

  1. 终端数据 = 终端启动时上传终端的数据情况(数据类型,编号,版本)
  2. 后端数据 = 后端获取该终端的数据情况
  3. if (终端数据 != 后端数据) {
  4. 都有&&不一致:insert修改到下发回执表
  5. 后端有&&终端没有:insert新增到下发回执表
  6. 后端没有&&终端有:insert删除到下发回执表
  7. }

insert下发回执表

操作表

数据类型,数据值,操作(action)

下发回执表

终端发布表

类型(分类/组织架构/标签/终端),类型值

基于版本的终端和后端的同步方案

  1. 每个信息表加一个版本+终端同步清单表:终端,类型,类型值,版本,回执时间
  2. 终端和后端双方都需要回执确认机制
  3. 用户查看同步情况:把未同步的下发记录显示出来

频道和档期

  1. 频道本质是计划,使用方式:春节是一个频道,圣诞节是一个频道
  2. 不支持紧急排期,紧急本质是优先级,通过新建高优先级频道替代
  3. 档期播放优先级基于频道优先级和创建时间倒序
  4. 合并排期信息到档期
  5. 终端档期和频道的管理:一个页面上有档期和频道

联屏

  1. 主屏通过UDP广播找到所有终端,记录之。形成联屏的子屏UDP组
  2. 主屏通过UDP组通知子屏下载资源(url)
  3. 子屏通知主屏(API)下载完成
  4. 主屏通过UDP组通知子屏播放(url)
  5. 主屏通过UDP组通知子屏播放帧数(url, 帧数)
  6. 主屏通过UDP组通知子屏停止播放(url)
  7. 主屏通过UDP组通知子屏删除资源(url)

发布到联屏屏幕时触发切图,放到资源表

一个终端同时多个屏幕咋办?

终端激活

  1. if (未激活设备) {
  2. 密码/手机激活
  3. while (设备未激活) {
  4. sleep
  5. 查询设备是否激活
  6. }
  7. }
  8. 建立长连接
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注