12999659
发表于 2008-10-9 16:20:36
代码有问题吧~~~
12999659
发表于 2008-10-9 16:21:55
优化一下代码,改一下数据库的结构,应该没有问题的...
visvoy
发表于 2009-5-10 12:28:44
写过程式php吧,反正前台不需要图片(可能只有学校logo一张图)
后台用CI
yunnysunny
发表于 2009-8-1 12:39:15
我不知道你这问题怎么解决,但我想应该用到Ajax,让用户等待服务器返回信息。每次插入数据前进行锁表(不知这样会不会使速度更慢),操作之前可以试一下用事务,防止操作失败,出现脏数据。
yunnysunny
发表于 2009-8-4 09:59:28
第一种方法是锁文件:
1. <?php
2. $ltime = time();
3. if (file_exists('lock.php')){
4. if ($ltime - filectime('lock.php') < 1800) {
5. #logs("busy");
6. exit;
7. } else {
8. @unlink('lock.php');
9. }
10. }
11. $fp = fopen('lock.php','w+');
12. if (!$fp){
13. exit;
14. }
15. @flock($fp,2);
16. @fwrite($fp,$ltime);
17. @fclose($fp);
18.
19. do sth..
20. @unlink('lock.php');
21. ?>
第二种方法:
创建一个扩展
在PHP_MINIT中创建队列,在PHP_RINIT初始化并设置本次请求的队列状况,在PHP_RSHUTDOWN中释放资源。
队列要在web服务器主进程中创建,并在主进程的PHP_MSHUTDOWN中清理。注意并发状态,尤其是Apache2中,需要使用TSRM.h来保证队列状态的线程安全,通讯随便使用文件、共享内存都可以。
zhangtao-5
发表于 2009-10-21 16:28:20
恩,受教了啊。。
Larro
发表于 2010-6-23 21:50:50
分布式就别折腾了吧,会为了一个学期仅有的几次选课去搭分布式系统?
优化确实蛮重要,Bluewolf说的,特别SQL查询优化,还有前台图片和文件数控制,减少HTTP请求数,缓存也蛮重要,考虑Memcache比如课程基本信息(选课人数这些及时的自己控制下),适当使用AJAX,但不是HEX说的 一直发AJAX请求给服务器,可以做一个像QQ空间一样的,在线服务人数多时候给一个15秒左右的等候时间缓解服务器压力。
redtamo
发表于 2010-6-29 11:03:53
2w人应该不至于到崩溃吧
姑且就算选课时间只有两2小时
每小时(3600秒)1w人
这样算下来每秒2-3人
算上100倍方差
每秒200-300
netbus888
发表于 2010-7-10 05:15:43
程序有提升的余地 但这么多人并发感觉还是硬件的问题吧 你测试下看看硬件的瓶颈在哪。。这么多人。。咋感觉内存 io都有不小压力。。
kevinstudio
发表于 2010-7-16 00:20:52
向HEX老大说的,用AJAX不断执行一个控制器方法,我理解为建一个time_out_queue方法,就是对当前不在线的用户进行检测,如果发现这个用户当前不在线,就将其从队列中删除。:lol
瞎掺和~呵呵