新手问题 困扰我很久没解决的问题

rfei · 2015年09月24日 · 最后由 rfei 回复于 2015年09月28日 · 1699 次阅读
设定

S 服务器端;W 浏览器端;P 手机端;D 第三方服务器;

业务流程是这样的:

W ajax 请求 S; S 请求 D,同时提醒 P 端操作某项操作; P 操作,P 端通知 D 端; D 端再返回刚才 S 端向 D 端做的请求结果; D 端得到 S 端请求,等待 P 端通知,一旦 P 端有消息,立即返回给 S 端;D 端 20 秒未得到 P 端通知,也立即返回消息给 S 端;W、S 端重新发起以上流程。

现在问题是

在并发的情况下,S 端获取 D 端结果返回时间太长,P 端已经操作并通知了 D 端,但 S 端没有及时得到结果;但单独测试,S 端从 D 端能及时到结果。 我这里目前只能控制 S 端和 W 端,手机 P 端和第三方 D 端不能有任何更改。 目前 S 端脚本用的 php,Web 服务器用 apache2,代码类似这样

$url = 'D端API地址';
$re = file_get_contents($url);
if($re=='something'){
  ...
}
请问一下在 S 端有没有好的方案和建议,不限于 PHP;

可能是我理解力不好,没看出来什么地方困扰你了。

在并发的情况下,S 端获取 D 端结果返回时间太长

这个为什么时间这么长?

#2 楼 @jiemoon #1 楼 @jimrokliu 其实困扰我的问题就是

在并发的情况下,S 端获取 D 端结果返回时间太长

不过已经解决了,原因就在 file_get_contents 这个方法上面,因为是 php 的问题,就不多做说明了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册