Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax PHP多个脚本/请求_Ajax_Apache - Fatal编程技术网

Ajax PHP多个脚本/请求

Ajax PHP多个脚本/请求,ajax,apache,Ajax,Apache,我们的系统如下所示: 客户:普通客户 P服务器:基本上像代理一样运行的apache服务器(将查询转发到M服务器) M服务器:主服务器。所有的工作都在这里完成了 及 QueryQ1不等于QueryQ1',因为p Server在将Q1发送到M Server之前添加了更多变量(如服务器时间、客户端IP) 响应R1根本没有改变。它被转发到客户端而不进行更改 第二季度也是如此 问题是,如果同时发送带有Q1和Q2的ajax请求,Q2在p服务器中等待R1完成 这基本上是一个PHP/Apache问题。但是

我们的系统如下所示:

  • 客户:普通客户
  • P服务器:基本上像代理一样运行的apache服务器(将查询转发到M服务器)
  • M服务器:主服务器。所有的工作都在这里完成了

Query
Q1
不等于Query
Q1'
,因为p Server在将Q1发送到M Server之前添加了更多变量(如服务器时间、客户端IP)

响应R1根本没有改变。它被转发到客户端而不进行更改

第二季度也是如此

问题是,如果同时发送带有
Q1
Q2
的ajax请求,
Q2
p服务器中等待
R1
完成

这基本上是一个PHP/Apache问题。但是,我不知道如何挖掘这个问题。是多个php脚本问题还是多个请求问题?
我尝试了
session\u write\u close()
,但没有改变任何事情。

PHP的默认会话处理程序基于文件并使用独占锁。这意味着与同一会话相关的请求将被序列化。实际上,这是一件积极的事情,它可以避免许多奇怪的并行编程问题、竞争条件等

如果愿意,可以将会话处理程序更改为不太偏执的类型。或者,您可以编写自己的基于文件的文件,而无需独占文件锁定来避免这种行为。无论如何,访问关键资源时要小心。。。(信号灯、锁定等可以是您的朋友。)

这里有一些相关评论:


您可以使用会话目录中的
inotifywatch
验证此行为。(以前,inotify可能会导致内核恐慌和其他奇怪的行为…仅在测试服务器上测试…

您如何运行PHP(HTTPD或PHP-FPM)?您正在生成多少进程?简而言之,Q1不应该等待Q2,除非他们在等待相同的资源。这是httpd。你说的相同资源是什么意思?Q1和Q2被发送到同一个文件:
data\u manager.php
,Q1`和Q2`被发送到同一个java servlet。