在做学校选课的模块
但每每选课时,几千学生一起访问,服务器老承受不了...
所以想搞个访问排队功能
就是正在访问的人只有10分钟时间选课,这10分钟内他选课的访问速度得保障流畅~~~
200名之后的人需要给他一个顺序号排队,前面有人选完课或超时了,就按顺序允许访问...不知道各位高人是如何实现的...我只要思路就成了,当然若说得尽可能详细点必多分感激..谢谢了

解决方案 »

  1.   

    修改Apache的并发连接数
    http://bbs.51cto.com/thread-33812-1.html然后在用户登录是记录他的登录时间,到了10分钟就主动切断他的连接
      

  2.   

    建议楼主分为两步来做第一步,实现领取排队号,通过在MYSQL中创建一个自增字段的表,这个表里就一个字段SEQUENCE,类型为int, 并加上auto_increment属性。
    当有学生选课时,向此表SEQUENCE字段插入,同时获取所插入的ID,返回给学生,由于是自增的字段,可以实现排队领号的需求。这个表每天可以清空一次,这样保证每天排队号都是从1(或者某个最小值)开始,可重复利用。
    第二步,创建选课会话。可以在服务器上安装 memcached服务(需要通过php的memcache扩展去调用)。每位学生的选课会话都保存到其对应key-value中,key可以设置为选课排队号。value可以设置为开始选课的标记(value的内容不是重点,楼主可以自己来设计),那么当一个学生拿到排队号时,默认是没有设置memcache值的,因此访问key-value键值对的结果是false,当学生选课完毕后,清除该选课排队号的key-value键值对,当他再需要选课时,需要重新排队。而且,memcache是可以设置过期时间的。
      

  3.   

    不要用框架,页面全静态,被选的课程id,放入cookie【可以约定,一次最多选课数目】,不要跟服务器交互,静态页面,可以过一段时间更新一次只在确认选课的时候,去数据库搜这些cookie保存id的课程信息【是否已选满…老师………】