【问题标题】:SOAP request taking too long to process large dataSOAP 请求处理大数据的时间过长
【发布时间】:2012-11-27 13:19:06
【问题描述】:

我从其他网站获得了一个帮助 SOAP 客户端的数组,数组很大,您可以在此处查看短版
An array

我需要获取类别名称,我的代码在这里,它可以工作,但会减慢网站速度。如果有人可以提供更好的代码。

$client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL', 'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25');

$result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), "");
foreach($result['PriceList']['categories']['category'] as $category)
{
    echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>';
}

【问题讨论】:

    标签: php arrays soap


    【解决方案1】:

    类别经常变化吗?
    你不能经常轮询这些类别吗?

    例如,每 5 分钟左右进行一次soap 调用,然后将类别保存到数据库中的表中(不是一个好主意)或内存缓存。

    http://memcached.org/

    如果你可以使用 memcache...这里有一个 ruff 示例:

    $memcache_obj = new Memcache();
    $memcache_obj->connect('memcache_host', 11211);
    
    if(!$categories = $memcache_obj->get('soap_categories')) {
     $client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl');
     $client->soap_defencoding = 'UTF-8';
     $client->decode_utf8 = false;
     $parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL',    'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25');
     $result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), "");
     $categories = $result['PriceList']['categories']['category'];
     $memcache_obj->set('soap_categories', $categories)
    }
    
    
    foreach($categories as $category)
    {
        echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>';
    }
    

    您可以将 memcache 的过期时间设置为 1,2,5...等分钟,这样每次缓存过期时都会更新类别。否则,当缓存过期时,查找时间将少于 5-10 毫秒。

    【讨论】:

    • 非常感谢...我决定在会话中存储数据,这是个好主意吗?在会话中存储数据是否有任何限制?
    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    相关资源
    最近更新 更多