多版本配置

010 多版本配置功能交接

Author: fupeng.li

Date: 2020-05-07

关键词:010 多版本配置功能

需求

需求梗概:

  • 用户需要分层,不仅仅使用单一的配置文件
  • 改变用户的分层的依据是用户的广告数据
  • 一旦到达既定的触发条件,需要将用户跳档
  • 但是涉及不少特殊情况不予执行此需求

具体的需求文档

具体业务逻辑

代码相关注意事项

trident 数据来源

数据来自于方堃做的一部分工作,从 goldeneye 拿到准实时数据,放到对应的 Redis 里,这个 Redis 是一个单独的 Redis,根据代码讲解

数据存储位置

新建了数据库 ad_info,用于存储相关信息

type AdInfoModel struct { //(device_id 不唯一)
	UserId     string    `json:"user_id" xorm:"user_id"`
	DeviceId   string    `json:"device_id" xorm:"device_id"`
	Click      int       `json:"click" xorm:"click"`
	Coin       int       `json:"coin" xorm:"coin"`
	Impression int       `json:"impression" xorm:"impression"`
	Updated    time.Time `json:"updated" xorm:"updated"`
	Created    time.Time `json:"created" xorm:"created"`
}

具体字段解释:口头讲

用户等级记录

用户等级数据同时存储在 pg 里和 Redis 缓存里

配置等级排列和记录

在程序 init 时就会拿到配置文件里所有的用户等级配置,根据代码讲解