0

我有一个 SOAP 服务器,它能够一次接受多个 SOAP 请求,并且可以同时处理它们。

如果我创建一个基本的 SOAP 客户端 PHP 脚本来发出请求,并在不同的机器上同时运行该脚本多次,则请求似乎在服务器上排队,并且仅被一一处理,而不是同时处理。

Apache/PHP/SOAP 中是否有任何可能导致这种行为的东西?

我很欣赏这可能有点晦涩难懂,所以我主要想知道是否有人以前遇到过这个问题以及解决方案是什么。我难住了。

SOAP 调用如下所示:

$client = new SoapClient($config['parsingWSDL'],array('trace' => FALSE, 'exceptions' => TRUE));
$return = $client->__soapCall("ProcessCV",array($args));
4

1 回答 1

1

没有理由SoapClient让单独的实例(每个请求都是一个新的......)相互等待。但是,在客户端,如果 HTTPKeepAlive想要回收相同的连接,它可能会出现问题,并且在服务器端使用具有相同标识符的会话也会阻塞,直到释放锁(因此,在这种情况下,关闭会话尽快session_write_close()而不是保持打开状态。

其余的取决于您的 SoapServer 实际执行的操作,SQL 查询可能正在等待锁定,或者您ProcessCV可能完成的任何其他锁定可能是原因。

于 2012-12-12T17:23:57.510 回答