个性化推送
redmine: http://redmine.yoho.cn/issues/5172
时间点:
- 开发联调时间: 2016-4-26
- 转测试时间: 2016-4-27
- 上线时间: 2016-5-5
注意
因为当前大数据只在aws部署,java个性化推送功能也只在aws上生效。
推送需要支持的配置
- 支持动态关闭、启用某个场景的推送(不提供后台页面)
- 支持动态设置某种场景的推送发送时间(4月底版本不实现)
推送支持简单的统计和日志
- 统计当天推送情况(场景、品牌、用户数据),写入到influxdb中
- 推送日志,方便大数据统计推送效果。 格式为:
<MSGID>:<推送场景>:<品牌ID>:<用户ID>
当前支持场景
- 上新后推送
- 改价后推送
- 修改了vip价格后推送
java 与 大数据之间的接口
获取收藏&购买过某个品牌的用户列表
Redis SortedSet, KEY 为 BD:BRAND_RELATED_USERS:001
, 001是品牌的ID, Element为用户ID列表,[10232323, 105656565], SCORE为用户的VIP等级.
品牌下的用户列表包含下面三种用户:(1)收藏该品牌;(2)收藏商品的品牌中包含该品牌;(3)购买过商品的品牌中包含该品牌
等级信息:0 普通, 1 银卡, 2 金卡, 3 白金
获取上新的品牌列表
Redis List, KEY 为 BD:LAST_ADDED_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 最左边是上新的品牌中最多商品的品牌。 品牌中商品数量相同的,随机排列。
获取改价的品牌列表
Redis List, KEY 为 BD:LAST_PRICE_DOWN_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 排序规则同上。
获取设置了VIP价格的品牌列表
备注:变价的时候,“VIP折扣类型” 从无折扣变成有折扣的场景
Redis List, KEY 为 BD:LAST_VIP_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 排序规则同上。
个性化推送消息
,一天只能收到3条
限制:同一个用户,所有
上新后推送
)保证当天用户只收到一条,但是用户当天可以同时收到上新后推送
和 改价后推送
限制:某种场景的推送(例如 例如,品牌相关用户关系如下:
B1 --> {u1, u2, u3, u4}
B2 --> {u2, u3, u5}
大数据每天计算出当天上新的20个品牌,例如: {B1,B2,B3, …. B20}
推送先推送B1关注用户->{u1, u2, u3, u4}
, 然后推送B2关注用户-> {u2, u3, u5}
, 发现u2,u3
已经推送了上新消息,则不需要推送,只推送用户u5