我正在尝试编写一些容错的Python代码。我有两个远程服务器,它们的共享文件夹中都有文件。我想至少在一台服务器上访问这些文件。
在读取文件之前,我正在尝试使用ping的每个服务器。但是,打开文件后,我还应该做些其他的事情吗?在无法访问服务器的描述符上使用read()
函数可以收到什么样的异常?如何正确处理所有这些问题?
def get_working_server():
logger = log_tools.get_logger(__name__)
servers = ["server1","server2"]
while True:
try:
return try_server_each(servers[0])
except errors.ServerIsDownError:
try:
return try_server_each(servers[1])
except errors.ServerIsDownError:
logger.error("Waiting for any to be up,sleeping for 2 seconds")
time.sleep(2)
def try_server_each(server):
logger = log_tools.get_logger(__name__)
logger.info("Trying %(d_o_d)s on availability" % {"d_o_d": server})
response = os.system("ping -n 1 " + server)
if response == 0:
logger.debug("It's up")
return "\\\\" + server
else:
logger.warning("It's down")
raise errors.ServerIsDownError