php - AsyncTask 连接超时

标签 php android apache android-asynctask

我在远程服务器调用我的服务器时遇到以下异常。

java.net.SocketException: Connection timed out
java.net.SocketTimeoutException: Connection timed out
java.net.ConnectException: failed to connect to www.my_url.com/my_ip (port 80): connect failed: ETIMEDOUT (Connection timed out)

我的服务器已启动,但我猜有一小部分时间它由于某种原因没有响应。

如何解释这些异常?它们是否每隔一段时间都正常,或者是否有一种常见的修复方法,可以在服务器超时之前延长与服务器的连接时间?

我的服务器是运行 PHP 的 Apache。

感谢提前提出建议。

最佳答案

除了提示用户某事不起作用并稍后再试,记录它以供取证,并希望它们不会那么频繁之外,您无法在客户端上对这些做任何事情。但是,我怀疑您的服务器由于多种原因没有响应,您可以采取一些措施。

发生这种超时时,请检查服务器的负载。运行 top 看看是什么占用了 CPU。如果您有后台作业正在运行或应用程序的负载很高。如果你有一个后台作业占用了 CPU,那么你需要分析你的代码并找到算法运行热的地方并改进它。如果你有负载问题或者你不能真正改进你的代码,那么你需要扩展你的服务器:更快的服务器,获得更多的内存,部署缓存,更快的数据库,运行 Quercus(比 C PHP 提高 4 倍)。或者获取更多服务器并使用负载均衡器水平扩展。后者在很大程度上取决于您的应用程序的体系结构,但这是您可以解决的问题。

关于php - AsyncTask 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571072/

相关文章:

php - 定义哪个 ID 应该保留在 JOIN 表查询中

android - 无法在 Android 中使用 Universal Image Loader 检索图像

apache - Apache 中特定虚拟主机的 HTTP 到 HTTPS

php - Apache 上传文件/tmp 权限被拒绝

PHP - 非破坏性输入清理

php - 如何使用装置测试 cake3 插件

php - 如何修复PHP中的“ header 已发送”错误

java - Firebase - 检查 Posts 节点中的 uid 子值是否匹配,如果匹配则将所有分数值加在一起并存储在 String 变量中

java - 清洁架构 : How to reflect the data layer's changes in the UI

php - 外键约束对现有键失败