проблема с таймаутом в netsnmp lib

1

У меня есть простой пример:

import netsnmp
var = netsnmp.Varbind('ifHCInOctets','0')
res = netsnmp.snmpgetnext(var,Version = 2,DestHost='localhost',Community='public',Timeout=1000000)
print res[0]

 time python2 test.py 
покажите мне:
real    0m4.086s
user    0m0.073s
sys     0m0.007s

Почему 4 секунды = 1000000? Сервер snmpd не работает на localhost

Теги:
net-snmp

1 ответ

3
Лучший ответ

Когда вы проходите Timeout=?, вы устанавливаете максимальное время, в течение которого цикл внутреннего выбора snmp должен ждать до регистрации таймаута. Установка этого параметра на 1000000 означает "подождать 1 миллион микросекунд", что составляет 1 секунду.

Однако есть также аргумент Retries=?, который указывает, сколько раз клиент snmp будет повторно пытаться выполнить запрос после таймаута, поэтому для Timeout=1000000, Retries=0 select будет пытаться выполнить только 1 запрос и таймаут за 1 секунду. Если Retries=1 будет пробовать дважды и таймаут через 2 секунды.

Таким образом, в зависимости от комбинации Timeout и Retries вы увидите разные задержки.

Число повторов по умолчанию равно 3, поэтому 1 попытка + 3 повторения по 1 секунде каждый = 4 секунды.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню