SOAP 请求正在阻止其他 SOAP 请求



我有一个WordPress Web应用程序,它通过SOAP与WCF服务进行通信。

假设我访问了一个长时间运行的 SOAP 请求。在另一个选项卡中,我访问另一个 SOAP 请求,但这个请求运行时间很短。短请求似乎被长时间运行的请求阻止。

在执行 SOAP 请求时,我为每个请求创建一个新客户端。我不知道 WCF 服务配置的详细信息,但我相信它能够处理并发请求。这是因为在运行 Web 应用程序的另一个实例时,其他短请求会完成,而无需等待 Web 应用程序的第一个实例中长时间运行的请求。

我已经考虑过使用某种异步 SOAP 客户端,但我还没有找到任何适合我的东西。由于我发现的信息很少,我想我可能是做错事的人。

为什么正在运行的请求会阻止其他请求?

这与 WCF 无关。您的 PHP 会话文件被锁定,因此每个浏览器只能有一个并发请求。

基本上有两种解决方案:

  • 在 Web 服务器上的后台线程或后台进程中启动 WCF 调用。这样,处理浏览器请求的 PHP 脚本可以立即返回。

  • 更改 WCF 服务,以便它接受"开始工作"调用,而不是立即执行,并且可以轮询执行结果。

最新更新