【问题标题】:Web service running time is slow and causing slow running web pageWeb服务运行时间慢,导致网页运行缓慢
【发布时间】:2015-02-13 16:22:03
【问题描述】:

我正在使用以下第三方代码为在我的网上商店下订单的客户发送 SMS,似乎此代码加载缓慢,导致我的订单确认页面(其中包含此代码)加载缓慢。

是否有任何解决方案可以让我使用此代码,但它的缓慢不会影响我的页面?

谢谢

// Send SMS
/*
ini_set("soap.wsdl_cache_enabled", "0");
$sms_client = new SoapClient('http://87.107.121.54:2620/post/send.asmx', array('encoding'=>'UTF-8'));

$parameters['username'] = "xxxxxxxxxxx";
$parameters['password'] = "xxxx";
$parameters['to'] = "$phone";
$parameters['from'] = "1000947320";
$parameters['text'] ="test";
$parameters['isflash'] =false;

$sms_client->SendSimpleSMS2($parameters)->SendSimpleSMS2Result;

*/

【问题讨论】:

  • 您是否检查过是否是 您的 代码导致了问题,或者只是您的服务器与 API 服务器的链接本身很慢?如果它是你的服务器,那么你应该努力找出它为什么慢。如果是soap请求,那么你应该得到一个更好的服务器或API提供者,它们有更好/更快的链接。

标签: php performance soap time loading


【解决方案1】:

使确认页面将值添加到数据库中并创建一个脚本来处理来自数据库的值,这意味着: 当用户进入页面时,您的代码将执行以下操作:

INSERT INTO sms SET to='$to', text='$text', sent=0;

然后你编写一个执行以下操作的脚本:

ini_set("soap.wsdl_cache_enabled", "0");

$parameters['username'] = "xxxxxxxxxxx";
$parameters['password'] = "xxxx";
$parameters['from'] = "1000947320";
$parameters['isflash'] =false;

$sms_client = new SoapClient('http://87.107.121.54:2620/post/send.asmx', array('encoding'=>'UTF-8'));

$query = mysql_query("SELECT * FROM sms WHERE sent=0");
while( $message = mysql_fetch_assoc($query) ) {
    $thisMessage = $parameters;
    $thisMessage['to'] = $message['to'];
    $thisMessage['text'] = $message['text'];

    $sms_client->SendSimpleSMS2($thisMessage)->SendSimpleSMS2Result;

    mysql_query('UPDATE sms SET sent=1 WHERE id='.$message['id']);
}

你在 cron 中运行这个脚本,让我们说每分钟或你想多久运行一次。

【讨论】:

  • 好主意 :) 欣赏!
  • 这将导致短信有一点“滞后”,因为它不会在用户进入确认页面的那一刻发送,但会加快用户确认页面的加载速度。希望你有这个想法,如果这有帮助,我会很高兴获得投票:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
相关资源
最近更新 更多