作者alpe (薛丁格的猫)
看板PHP
标题Re: [请益] 以天为单位自动更新资料库计算结果
时间Sat May 5 23:21:49 2012
※ 引述《pLxxoy (刃伤沙汰)》之铭言:
: 标题: [请益] 以天为单位自动更新资料库计算结果
: 时间: Fri May 4 22:41:17 2012
:
: 我的作法是先跑一个loop计算出其他的使用者跟A的相似度
: 再把那些算出来的值在同一个页面用QuickSort排序後取前五个列出
: 可是这样一来等於A每进入这个页面一次就要重算一次
:
: 问题是:有办法限制说A第一次进入页面时才做计算并存入资料库中
: 之後当A重新拜访页面时,就从资料库直接印出来给A
: 直到隔天才重新开始做重新计算的动作吗?
:
: 希望板友能提供我一些解决这方面问题的关键字或方向 谢谢!!
: → tyf99:不用 cron 的话,就是在每次有人浏览时触发 05/05 00:45
: → tyf99:若距离上次触发时间超过一天,就执行统计 05/05 00:46
: → tyf99:是的,执行统计时就顺便写入 timestamp 05/05 16:37
: → tyf99:我之前的作法是只有 admin 登入时才进行统计 05/05 16:41
: → tyf99:因为统计也只有 admin 看得到,平常不需要跑统计拖效能 05/05 16:42
: → tyf99:不过我的案例跟上面这个不同,上面这个是要给大家看的 05/05 16:43
是说我刚好有做一样的东西, 我的方式是用 memcached.
user 第一次进来, 跑资料(会慢一点, 但是用ajax load 至少不会
等页面等太久, 输出前丢到 memcached 里, key 用 xxx_user_id.
再度进页面, 先检查 memcached 有没有这个 key.. 没有才要跑 php.
memcached, cache本身就可以设定过期时间, 不用去自己计算.
也不用跑资料库, memery 快到爆, 缺点... 浪费记忆体(误)
当然也是可以用file当cache... 实做上的方式的问题.
--
Live Long and Prosper
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.31.105.62
1F:→ buganini:fb有一堆机器是差满记忆体没有硬碟的啊 05/06 01:24