创建大部分SOAPClient

时间:2014-03-03 17:15:08

标签: php soap soap-client


我有一个很多电话的肥皂服务。

$client = new SoapClient(null, $options); 
$result1 = $client->service($valeurs1); 
$result2 = $client->service($valeurs2); 
...
$resultn = $client->service($valeurs3); 

如果我超过一定数量的电话,我的问题就会发生,我会超时 我可以增加max_execution_time,但我不是这个解决方案的粉丝。

如果我将所有内容都放在一个调用中,它也不会通过(数据太多)

$client = new SoapClient(null, $options); 
$result = $client->service($valeurs1 + $valeurs2 + .... + $valeursn); 

有没有办法在执行我的php脚本时停止我的服务肥皂,以便在每次调用时重新创建一个新的?

$client1 = new SoapClient(null, $options); 
$result1 = $client1->service($valeurs1); 
// stop connection soap
$client2 = new SoapClient(null, $options); 
$result2 = $client2->service($valeurs2); 
// stop connection soap
...
$clientn = new SoapClient(null, $options); 
$resultn = $clientn->service($valeursn);
// stop connection soap

我的php版本是5.3
我不能使用5.4

中出现的“keep_alive”

如果你有一个想法,那就太好了! :)

(抱歉,我的英文:translate.google:))

1 个答案:

答案 0 :(得分:1)

我会回来关闭我的问题,如果可以为某人服务,那就更好了。

已经再次感谢@IMSoP回答我并推荐。

我的开发原理更新了很多元素(在一个真实的例子中,它的范围可以从1到12000)。 我已经去调用每个更新,或者调用webservice更多的处理时间,我在很大程度上传递了PHP的实际执行时间(max_execution_time)。

所以我采用了不同的原则,我发送文件来更新我的元素,时间要好得多。 :) 下面是一个示例SOAP调用,其中包含一个感兴趣的文件。 :)

$url_base = 'http://www.exampletoto.tata/';

// SOAP Client Options
$options = array();
$options['location'] = $url_base. 'webservice/soap';
$options['uri'] = $url_base ;  
$options['encoding'] = 'ISO-8859-15';
$options['soap_version'] = SOAP_1_2;


$nom_fic = 'file_name.csv';

$handle = fopen('C:\\TMP\\' . $nom_fic, "rb");
$contents = fread($handle, filesize('C:\\TMP\\' . $nom_fic));
fclose($handle);

$info = array('nom_fic'    => $nom_fic,
              'taille_fic' => filesize('C:\\TMP\\' . $nom_fic));

$client = new SoapClient(null, $options); 
$result = $client->updateService($info, $contents);