0

我有一个 php 应用程序,它需要通过重复 SOAP 调用(最多 700 个)来获取用户数据。不幸的是,所服务的报告目的似乎使得有必要进行重复调用。无论如何,我有一个 For 循环(最多可以重复 700 次),它调用一个函数,而该函数又进行 SOAP 调用。但是我收到一个关于 SOAP 调用在 30 秒后超时的错误。显然,在第一个 SOAP 调用返回到调用函数之后,我需要等待下一个 SOAP 调用。那么如何做到这一点。这是一个代码片段:

//calling function
foreach($xml_apicheck->children() as $child)
{
  getprincipalinfoandemail($endusersconame);
 }
 //called function
 function getprincipalinfoandemail($loginid) {
  //making the SOAP calls and emailing//works for the first time called
   return true;
  }
4

1 回答 1

1

要在不花费很长时间的情况下处理大量 SOAP 请求,最好的办法是分叉您的 PHP 脚本并限制您生成的进程数量。每个 fork 将执行一个 SOAP 语句,等待它,然后在最后死掉。几年前我写了一个脚本来做这件事,并写了一篇关于它如何工作以及如何实现它的教程/帖子。这个特定的示例是如何使用 NuSOAP 库与索尼爱立信 SMS 网关(使用 SOAP)一起工作。希望这能让你快速理顺:

http://jservedio.com/article/3

PS:这是几年前写的,所以我可能使用常规的 MySQL 库来连接数据库。如果您必须连接到数据库,请确保您使用的是 PDO 或 mysqli - 特别是如果您从 GET 或 POST 获取查询的任何输入。

已编辑:针对您不需要所有这些功能的评论 - 您可以考虑创建 SOAP 请求标头和正文,然后使用 cURL 将其发送到您需要的位置。这将等待响应(如果需要,甚至将其定向到变量)。

于 2013-01-10T16:22:50.800 回答