我有一个SOAP服务器,它能够同时接受多个SOAP请求,并且可以同时处理它们。
如果我创建一个基本的SOAP客户端PHP脚本来发出请求,并在不同的机器上同时多次运行此脚本,请求似乎在服务器上排队,并且只是逐个处理而不是同时处理
Apache / PHP / SOAP中是否有任何可能导致此行为的内容?
我很欣赏这可能有点模糊,所以我主要想知道是否有人之前遇到过此问题以及解决方案是什么。我很难过。
SOAP调用如下所示:
$client = new SoapClient($config['parsingWSDL'],array('trace' => FALSE, 'exceptions' => TRUE));
$return = $client->__soapCall("ProcessCV",array($args));
答案 0 :(得分:1)
SoapClient
中没有任何理由可以制作单独的实例(每个请求都是新的......)等待彼此。但是,在客户端,HTTP KeepAlive
可能是一个问题,如果它想要回收相同的连接,并且在服务器端使用具有相同标识符的会话也将阻塞,直到锁被释放(所以,在那例如,使用session_write_close()
尽快关闭会话,而不是保持打开状态。
其余的取决于您的SoapServer实际执行的操作,SQL查询可能正在等待锁定,或者ProcessCV
可能导致的任何其他锁定可能是原因。