27 lines
1.7 KiB
Go
27 lines
1.7 KiB
Go
package apollostruct
|
||
|
||
// 账号处罚结束实际生效时间配置,用于通知推送服务
|
||
|
||
/* 在账号处罚创建时,除了立即给用户推送一条封禁通知,还会写一条解禁通知,推送时间为处罚的结束时间
|
||
正常来说,账号处罚结束时间 = 账号处罚创建时间 + 触发时长
|
||
但由于具体场景存在的时延,在上述计算得到的账号处罚的结束时间,处罚可能还未结束
|
||
如主播推荐列表每1个小时推送一次,故它实际生效时间应该是结束时间顺延的下一个小时整点
|
||
动态推荐列表每5分钟推送一次,故它实际生效时间应该是结束时间顺延的下一个5分整点*/
|
||
|
||
/* 我们认为用户实际感知到的处罚结束应该在他收到通知的时候,所以解禁的通知时间需要根据具体场景延后一些
|
||
interval_map表示具体场景的定时任务每隔多少时间执行一次,单位为秒
|
||
比如对于主播推荐列表,时间间隔就是3600秒,解禁通知的时间戳需要补足至3600秒的倍数
|
||
*/
|
||
|
||
/*
|
||
default_interval表示推送“定时通知”的定时任务的时间间隔
|
||
如果这条封禁的场景没有定时推送的需求,则解禁通知的时间戳补足至default_interval的倍数即可
|
||
用以满足“用户实际感知到的处罚结束应该在他收到通知的时候”
|
||
需要注意,interval_map每个键值对的值必须是default_interval的倍数,否则推送通知会产生异常
|
||
*/
|
||
|
||
type AcctPunishmentRealEndtimeCfg struct {
|
||
IntervalMap map[string]int64 `json:"interval_map"` // 时间间隔map
|
||
DefaultInterval int64 `json:"default_interval"` // 默认通知时间间隔
|
||
}
|