Python использует попытку сократить время ожидания

Я использую модуль exscripts, у которого есть вызов conn.connect('IP-адрес'). Он пытается открыть сеанс telnet для этого IP-адреса. Он будет генерировать ошибку после истечения времени соединения. Исключение тайм-аута установлено где-то в коде модуля, иначе оно было бы тем, что по умолчанию для telnet. (не уверен)

Это время ожидания слишком велико и замедляет работу сценария, если 1 устройство недоступно. Есть ли что-то, что мы можем сделать с попыткой, кроме как здесь? Нравиться

Попробуйте в течение 3 секунд: затем обработайте код, кроме: напечатайте «время ожидания истекло»


person skd    schedule 25.03.2015    source источник
comment
Я не знаю exscripts, но... вы можете попробовать threading.Timer, который срабатывает через 3 секунды и закрывает соединение.   -  person tdelaney    schedule 25.03.2015


Ответы (2)


Я думаю, вы можете использовать

conn = Telnet(timeout=3)

Я не знаю, timeout ли в секундах. Если микросекунды, попробуйте 3000

person itzMEonTV    schedule 25.03.2015

Мы изменили API. Майк Пеннингтон совсем недавно представил новый параметр connect_timeout для этого конкретного варианта использования.

Новое решение (текущий мастер, последний выпуск на pypi 2.1.451):

conn = Telnet(connect_timeout=3)

Мы изменили API, потому что обычно вы не хотите ждать недоступных устройств, а хотите дождаться завершения команд (некоторые из них занимают немного больше времени).

person Enno Gröper    schedule 14.04.2015