Чтение файлов из сетевого расположения с помощью Python - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь написать какой-нибудь отказоустойчивый код 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...