在做学校选课的模块
但每每选课时,几千学生一起访问,服务器老承受不了...
所以想搞个访问排队功能
就是正在访问的人只有10分钟时间选课,这10分钟内他选课的访问速度得保障流畅~~~
200名之后的人需要给他一个顺序号排队,前面有人选完课或超时了,就按顺序允许访问...不知道各位高人是如何实现的...我只要思路就成了,当然若说得尽可能详细点必多分感激..谢谢了
但每每选课时,几千学生一起访问,服务器老承受不了...
所以想搞个访问排队功能
就是正在访问的人只有10分钟时间选课,这10分钟内他选课的访问速度得保障流畅~~~
200名之后的人需要给他一个顺序号排队,前面有人选完课或超时了,就按顺序允许访问...不知道各位高人是如何实现的...我只要思路就成了,当然若说得尽可能详细点必多分感激..谢谢了
http://bbs.51cto.com/thread-33812-1.html然后在用户登录是记录他的登录时间,到了10分钟就主动切断他的连接
当有学生选课时,向此表SEQUENCE字段插入,同时获取所插入的ID,返回给学生,由于是自增的字段,可以实现排队领号的需求。这个表每天可以清空一次,这样保证每天排队号都是从1(或者某个最小值)开始,可重复利用。
第二步,创建选课会话。可以在服务器上安装 memcached服务(需要通过php的memcache扩展去调用)。每位学生的选课会话都保存到其对应key-value中,key可以设置为选课排队号。value可以设置为开始选课的标记(value的内容不是重点,楼主可以自己来设计),那么当一个学生拿到排队号时,默认是没有设置memcache值的,因此访问key-value键值对的结果是false,当学生选课完毕后,清除该选课排队号的key-value键值对,当他再需要选课时,需要重新排队。而且,memcache是可以设置过期时间的。