想了两种解决方式都不太理想:
第一种是尝试远程链接线上数据库
来判断
第二种是curl请求
线上服务器的一个接口,
但是这两种方式,等待回应的时间过长,请问如何在1~2s时间内判断线上服务器是否宕机(开启)?
(判断完之后,根据结果进行相应的操作,进行后续操作的时候,需要先判断服务器是否开启。)
想了两种解决方式都不太理想:
第一种是尝试远程链接线上数据库
来判断
第二种是curl请求
线上服务器的一个接口,
但是这两种方式,等待回应的时间过长,请问如何在1~2s时间内判断线上服务器是否宕机(开启)?
(判断完之后,根据结果进行相应的操作,进行后续操作的时候,需要先判断服务器是否开启。)
做TCP层的心跳检测,定时去发送数据包来判断线上服务器是否宕机。
$this->ftp = stream_socket_client(
$remote,
$errno,
$errstr,
$this->connection_timeout,
STREAM_CLIENT_CONNECT,
$this->context
);
if (false === $this->ftp) {
// 连接失败
throw new RuntimeException(
sprintf(
'Error Connecting to server(%s): %s ',
$errno,
$errstr
),
$errno
);
}
2 回答1.3k 阅读✓ 已解决
1 回答960 阅读✓ 已解决
2 回答839 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答895 阅读
1 回答883 阅读
1 回答814 阅读
可以用
fsockopen
防止意外的超时,可以做个循环