push.md
2 KB
个性化推送
redmine: http://redmine.yoho.cn/issues/5172
注意
因为当前大数据只在aws部署,java个性化推送功能也只在aws上生效。
推送需要支持的配置
- 支持动态关闭、启用某个场景的推送(不提供后台页面)
- 支持动态设置某种场景的推送发送时间(4月底版本不实现)
推送支持简单的统计
- 统计当天推送情况(场景、品牌、用户数据),写入到influxdb中
当前支持场景
- 上新后推送
- 改价后推送
- 修改了vip价格后推送
java 与 大数据之间的接口
获取收藏&购买过某个品牌的用户列表
Redis SortedSet, KEY 为 BD:BRAND_RELATED_USERS:001
, 001是品牌的ID, Element为用户ID列表,[10232323, 105656565], SCORE为用户的VIP等级.
获取上新的品牌列表, ,只保存最早的20条
Redis List, KEY 为 BD:LAST_ADDED_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 最左边是当前最早上新的品牌.
获取改价的品牌列表,只保存最早的20条
Redis List, KEY 为 BD:LAST_PRICE_DOWN_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 最左边是当前最早改价的品牌.
获取设置了VIP价格的品牌列表,只保存最早的20条
Redis List, KEY 为 BD:LAST_VIP_BRANDS:2016-04-18
, VALUE为品牌ID列表,[001, 002, 003] 最左边是当前最早修改了VIP价格的品牌.
上新后推送
)保证当天用户只收到一条,但是用户当天可以同时收到上新后推送
和 改价后推送
限制:某种场景的推送(例如 例如,品牌相关用户关系如下:
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