整体环境:Apache2.4.25+PHP5.6+MySQL5.5.57需求:比如用户表中有2万条数据,需要将这些数据先查出,然后根据用户组表中对应设置的比例,计算用户应该升级还是降级,再进行更新操作。问题:当用户量小的时候,没有任何问题,直接浏览器执行,运行结束,所有任务完成。但是当用户量超过6000后,发现浏览器中会报ApacheServer错误我的PHP代码中也增加了ignore_user_abort(true);和set_time_limit(0);做法:我目前的解决方案是,将这条任务拆分成若干个小任务,单个执行,这样虽然能解决了,但是不是长久之计啊。因为用户量还是会增加的。疑问:想问下,大神们,你们是如何处理这种情况的?因为代码原先不是我写的,只是接手后,用户增长到6000以上了,才发现这个问题的。中间我想调试下,用ob_flush()flush()看看过程的,结果完全失效,怎么弄都没反应,后来改用日志记录查看,才发现,每次每条任务,只能执行到大概2500左右的位置,就会自己挂掉。查看服务器资源,cpu和内存也没有满,数据库连接数也没有满,而且因为之前的频繁请求出错,我现在数据库已经改成长连接了。所以,唠叨了这么多,还是想问,大神们,你们在遇到这种任务的时候,是如何执行的?也是和我这边一样,同一个请求,一直等响应吗?还是有其他方法??
暮色呼如
相关分类