请教各位大神,本人公司当前项目需要获得会员的购物积分,但是新的积分查询程序构建在另一个平台之上,我需要通过soap接口的方式获取最近的积分数据。但批量调用soap查询积分的速度将受到大幅度的限制。
目前查询的新需求是获取某个积分区间的用户信息(用户数据信息在我本人公司,对方公司的数据表上没有建立任何索引,每次积分查询都是通过关联查询的方式获取积分...[-_- 有点悲剧]。虚心请教..有没有什么好的办法可以提升查询的速度。。。
数据本地化解决接口缓存数据无限增加,读取慢的问题,速度极大提升更注重SEO优化优化了系统的SEO,提升网站在搜索引擎的排名,增加网站爆光率搜索框本地化不用远程读取、IFRAME调用,更加容易应用及修改增加天气预报功能页面增加了天气预报功能,丰富内容增加点评和问答页面增加了点评和问答相关页面,增强网站粘性电子地图优化优化了电子地图的加载速度与地图功能酒店列表增加房型读取酒店列表页可以直接展示房型,增
调用SOAP的PHP函数如下:
<?php
public function getCustomerScore($custId = 0)
{
$connect = new SoapClient(C('SOAP_HOST'), array('trace' => true, 'exceptions' => true));
$request = $connect->__soapCall('getCustomerScore', array(array('custId' => $custId)));
$response = json_decode($request->getCustomerScoreResult, true);
if (empty($response['error'])) {
$score = json_decode($response['scoreList'][0], true);
return $score['scoreBalance'];
} else {
return false;
}
}查询积分后,我通过本地数据库查询用户的基本信息, 然后用关联数组组合,目前能稍微快些。。
但是如果查询量继续变大的话, 速度会大幅度降低。。
回复内容:
请教各位大神,本人公司当前项目需要获得会员的购物积分,但是新的积分查询程序构建在另一个平台之上,我需要通过soap接口的方式获取最近的积分数据。但批量调用soap查询积分的速度将受到大幅度的限制。
目前查询的新需求是获取某个积分区间的用户信息(用户数据信息在我本人公司,对方公司的数据表上没有建立任何索引,每次积分查询都是通过关联查询的方式获取积分...[-_- 有点悲剧]。虚心请教..有没有什么好的办法可以提升查询的速度。。。
调用SOAP的PHP函数如下:
<?php
public function getCustomerScore($custId = 0)
{
$connect = new SoapClient(C('SOAP_HOST'), array('trace' => true, 'exceptions' => true));
$request = $connect->__soapCall('getCustomerScore', array(array('custId' => $custId)));
$response = json_decode($request->getCustomerScoreResult, true);
if (empty($response['error'])) {
$score = json_decode($response['scoreList'][0], true);
return $score['scoreBalance'];
} else {
return false;
}
}查询积分后,我通过本地数据库查询用户的基本信息, 然后用关联数组组合,目前能稍微快些。。
但是如果查询量继续变大的话, 速度会大幅度降低。。
1.我不知道SOAP服务是否给你们提供了其他的调用方法,看你示例里面是根据用户来查询其对应的积分,因为你的需求是根据积分分段来查询用户,如果有类似getCustomerByScore()方法可能调用起来更方便,你现在的方法应该是要遍历所有用户,如果有根据分数查询用户集合的方法的话,数据量应该会减少不少。
2.如果对方的服务单个请求时间就是很长,那也没有神马办法 -_-[找老大看能不能谈]
3.如果你们的会员积分信息不是那么需要实时性,可以用cronjob等定时跑,把用户的会员信息临时保存在你们本地,这样才有进一步优化的可能。









