接口超时需要怎么处理

接口超时需要怎么处理,第1张

1/6
程序的超时有两种,首先是webservice连接本身建立通讯了,但是一直没有返回数据,所以上面的代码中定义了webservice的连接超时时间为13s,这是定义在phpini中的,如果webservice连接超过13s,程序就抛出连接超时的异常。
2/6
另外一种是脚本执行超时,有时候可能是浏览器,网络等各种原因,webservice还没有连接,脚本就陷入了假死状态,所以定义脚本超时时间,系统默认脚本执行时间为30s。
3/6
当调用set_time_limit时,计时器会从0开始计时,前面各种元素加载的时间并不计算在内。此处结合上面的webservice连接超时时间,如果webservice连接上了后产生阻塞。
4/6
13s内便会抛出异常,所以不会引起15s才触发的脚本中断。所以,如果脚本中断基本可以认定webservice没有连接成功。当然,我们查看过webservice连接情况,正常情况下,2s内连接的建立,数据的返回都完成了。
5/6
webservice连接成功后没有及时返回数据,也没有达到13s的连接超时,但是由于前面建立连接时花了不止2s,脚本执行到15s时,中断了脚本,再重建连接返回了非预期的数据。所以,如果愿意等待的话,这两者之间的时间最好可以相差大点。
6/6
脚本中断后系统会报错,所以,这边还有个处理技巧,先记下当前的报错级别,然后重置为0,即不报任何错误,不自动抛出异常,然后脚本超时后,调用register_shutdown_function注册一个自定义函数,超时后会自动调用这个函数,显示自定义的信息。当然,如果webservice连接成功的话,还是需要回复先前的错误级别,不然,webservice连接超时后的异常将无法捕获。

>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13477355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存