页面某个时间点刷新数据问题实现方案疑问

现在项目上有个问题

关于“页面某个时间点刷新数据问题”

比如前台活动9点开始,9点开始显示新出来的数据。

虽然后台查询SQL是以9点判断的,但是前台做了squid缓存,导致数据在9点出不来。必须等到缓存失效后才能看到。

现在想请问下有什么好的解决方案。

暂时想的有2种
1. 后台取出所有的数据,前台用JS判断时间来过滤9点是否显示。JS的时间用AJAX取后台取
2. 起个定时任务,9点钟清理squid缓存

不知道选哪种,或者大家有什么更好的实现方案?

flycar_cyg
flycar_cyg 在数据更新之前使用的随机数是一样的 在数据更新之后 使用新的随机数 这个随机数是可以为时间戳
大约 6 年之前 回复

4个回答

url后面加上时间,加上随机数就可以保证绕过缓存服务器了

zyn010101
zyn010101 那用方案2的变种,9点前更新缓存
大约 6 年之前 回复
yooyoozoo
yooyoozoo 只有加时间随机数的url去访问服务器->返回最新的数据 不加的,不去走服务器->得到缓存的数据 现在要求9点访问的都是新数据,都要加随机数,应用服务器肯定扛不住,领导直接拍死 - =!
大约 6 年之前 回复
zyn010101
zyn010101 只有加时间随机数的url去访问服务器,不加的不会。服务器没有那么脆弱的。
大约 6 年之前 回复
yooyoozoo
yooyoozoo 这个试过,比如过了9点,且在缓存没失效的时间内,在URL后随便加个参数什么(比如1=1)就可以看见最新的数据了。但是这样缓存各种URL的squid就没效果了。应用服务器扛不住啊
大约 6 年之前 回复

定时任务是正解。方案1不靠谱,且前端比较复杂,复杂的事情最好放服务器做。

编程方式刷新Squid缓存服务器
[url]http://blog.csdn.net/21aspnet/article/details/6579010[/url]

服务器响应的时候传一个时间到客户端,客户端用js进行倒计时就行啦
时间到了就显示‘开抢’按钮

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!