php – Symfony2并行处理
我偶然发现了一个有趣的问题.我正在使用Symfony2.简化的问题如下.有两个动作,每个动作在routing.yml中都有一个路径.第一个动作是这样的:
return new SymfonyComponentHttpFoundationResponse("first"); 第二个动作是这样做的: $start = time(); while(time()-$start < 25); return new SymfonyComponentHttpFoundationResponse("second"); 第二个动作运行循环25秒然后返回. 我打电话给第二个动作:domain.com/second(当然加载需要时间),同时我打开另一个浏览器窗口并输入:domain.com/first.这应该在眨眼之间给我结果,然而,即使第一个动作等到第二个动作结束,他们在同一时刻给我结果.这在开发和生产模式中都会发生.我想这两个过程应该自己运行.如果不是第一个动作,我调用纯PHP脚本(不是Symfony),它立即返回而不等待.此外,如果我在不同的浏览器中运行第一个和第二个操作,我不必等待第一个加载. 什么可能导致问题?上面提到的问题被简化为理解,但是,如果这个问题得到解决,我原来的,更复杂的任务也会起作用. 谢谢你的帮助:大卫 解决方法
默认情况下($_SESSION)PHP会话存储在文件中.建立连接并调用session_start时,将打开并锁定用户会话文件.
因此,现在不能处理同一用户/会话的其他连接,直到会话被解锁. 这可能是(并非绝对)您遇到的情况. 有关详细信息,请参见http://00f.net/2011/01/19/thoughts-on-php-sessions/和http://konrness.com/php5/how-to-prevent-blocking-php-requests/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |