求问:关注时间线怎么实现

2021-11-08 15:52:45 +08:00
 t4we

最近在学怎么做关注流,网上的资料都是说根据粉丝数量,混合使用拉模型和推模型,有点细节一直困扰我:

推模型比较容易理解,拉模型则要遍历所有关注的用户取动态,结合成时间线,但是每个用户发动态的时间是不一样的,感觉要从一个时间点开始取,比如每个关注取 1 天内的动态,最后看结果能不能构成一页,不够的话继续向前取,超出的话缓存起来。这样感觉效率很差,每个关注都要查一次,另外如果用户的关注过多,1 天内的缓存会太大,如果关注过少,会一直循环向前取,想问下拉模型的实现方式,或者还有什么更好的方法吗?

1465 次点击
所在节点    程序员
8 条回复
BBCCBB
2021-11-08 15:56:30 +08:00
写扩散, 一般来说发布的时候就写到你的关注者的 timeline 里去了.. 每个人实时维护一个 timeline..

这是针对关注你的人不多的情况, 粉丝多的就麻烦了. 可能要搞推拉结合..
Itoktsnhc
2021-11-08 16:04:03 +08:00
推的扩散太大可以考虑一下对关注的用户按照一定比例分组,实际推送到的是组这个级别。
另外时间线这个需求一般不会要求一个页面的动态数量一定得满足一个值,基本上就是差不多就结束
Itoktsnhc
2021-11-08 16:07:57 +08:00
wellsc
2021-11-08 16:11:39 +08:00
推拉结合🐶
t4we
2021-11-08 16:15:38 +08:00
@BBCCBB 推扩散比较简单,但是肯定不能只推的,拉的具体逻辑感觉不好控制
t4we
2021-11-08 16:18:10 +08:00
@BBCCBB 比如长期不登陆的用户,要降到读扩散,这时候读的逻辑比较复杂
wd
2021-11-09 07:41:40 +08:00
我理解每个人维护一个 timeline 应该是不行的,一来数据量会巨大且重复数据多,二来涉及到删除什么的很麻烦。

应该是使用类似搜索引擎的思路,只有一份数据 build 索引,然后可以通过不同维度查询。
SmiteChow
2021-11-09 10:49:40 +08:00
没那么复杂,活动是和人绑定的,拉朋友的活动聚合排序就可以了。

哲学核心理念是活动分页->聚合排序->模拟的时间线

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/813893

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX