博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何实现类似微信朋友圈的feed功能(第二版)
阅读量:6245 次
发布时间:2019-06-22

本文共 1528 字,大约阅读时间需要 5 分钟。

hot3.png

##总结一版 经过试验,我们发现了两个问题: 1.当用户关系发生更改的时候,动态列表无法实时更新。(属于业务需求) 2.实时性不强,容易出现错误数据 对上述问题我们进行了业务逻辑的更改。

##修改点 1.增加用户上一次拉取时间标记,由客户端传入 2.增加用户第一次发布动态时间标记 3.增加用户关系更改时间标记

主要是将用户关系的更迭能通知到timeline了。

##实现

$last 为客户端传入的拉取时间 共有几个分支:

1.用户更迭时间大于拉取时间

移除timeline   读取实时动态

2.用户更迭时间小于拉取时间 且 timeline不存在

读取实时动态   异步通知更新timeline

3.用户更迭时间小于拉取时间 且 timeline存在 且 拉取时 间大于 timeline的最新数据缓存时间

读取实时动态  异步通知更新timeline  //太新的数据有延迟 没法缓存

4.用户更迭时间小于拉取时间 且 timeline存在 且 拉取时间小于 timeline的最新数据缓存时间

**读取实时动态  //太老的数据不缓存**

5.用户更迭时间小于拉取时间 且 timeline存在 且 拉取时间在timeline时间段中

**  读取timeline **

输入图片说明 ##代码

$updateTimeLine = false;		if($followerUpdate > $last) {  			$timeline->remove();			$response = $this->_online($followers, $last, $limit, $order);		} else {			if(!$timeline->exists()) {				$response = $this->_online($followers, $last, $limit, $order);				$updateTimeLine = true;			}else {				$maxTime = $timeline->max();				$maxTime = $maxTime['score'];				$minTime = $timeline->min();				$minTime = $minTime['score'];				if($last>$maxTime) {					$response = $this->_online($followers, $last, $limit, $order);					$updateTimeLine = true;				} else if($last < $minTime) {					$response = $this->_online($followers, $last, $limit, $order);				} else {					$response = $timeline->rangeMax($last,$limit);					$count = count($response);					if($count != $limit) {						$onlineResponse = $this->_online($followers, end($response),$limit-$count,$order);						$response = array_merge($response, $onlineResponse);					}				}			}		}

如此很好的解决了实时的问题

转载于:https://my.oschina.net/lwl1989/blog/730231

你可能感兴趣的文章
Mybatis(六) Spring整合mybatis
查看>>
教您用Xshell快速连接远程电脑
查看>>
怎样阅读源码
查看>>
RxJava系列之中的一个 初识Rxjava
查看>>
智能巡检资料
查看>>
cocos2dx-3.1 接入多盟广告sdk+Android (2)
查看>>
Android Eclipse 导入 AS Gradle AAR 库手冊
查看>>
腾讯实习生三面
查看>>
CTFcrackTools-V3 - 一款旨在帮助 CTFer 在 CTF 中发挥作用的一个框架
查看>>
weblogic隐藏版本号教程(10.3.6为例)
查看>>
Html input 常见问题
查看>>
storm笔记:Storm+Kafka简单应用
查看>>
关于宽带接两台路由,并且第二台需要关闭DHCP的设置
查看>>
linux下拷贝隐藏文件
查看>>
jQuery源码分析学习--资料收集--更新中
查看>>
ubuntu 里切换 gcc,g++ 的版本
查看>>
SEO:查找网站的百度收录情况和如何让百度快速收录
查看>>
<html>
查看>>
Hibernate关联映射(多对一 --- many-to-one)
查看>>
Java中的return语句使用总结
查看>>