За последние 24 часа нас посетил 18591 программист и 1600 роботов. Сейчас ищут 895 программистов ...

SNMP ограничить время выполнения

Тема в разделе "Прочие вопросы по PHP", создана пользователем elition, 18 мар 2009.

  1. elition

    elition Активный пользователь

    С нами с:
    18 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Делаю SNMP опросчик оборудования
    Все что надо работает, но есть проблема
    если попадается коммутатор с кривой прошивкой скрипт зависает , точнее фукция snmprealwalk уходит в цикл
    (опрашивал комутатор стороней программой, таже шняга, комутатор клинит и он отвечает одной и тойже строкой )
    Как ограницить время выполнения не всего скрипта а именно этой функции

    PHP:
    1.  
    2. #!/usr/local/bin/php
    3. <?php
    4. snmp_set_oid_numeric_print(1);
    5. snmp_set_enum_print(TRUE);
    6. snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
    7.  
    8. $array_ipswich[]="192.168.10.1";
    9. $array_ipswich[]="192.168.10.2";
    10. $array_ipswich[]="192.168.10.3";
    11. ...
    12.  
    13.  
    14. foreach($array_ipswich as $id_equipment=>$ipswich){
    15.   if ($descrip = snmpgetnext($ipswich, pass, ".1.3.6.1.2.1.1.1")) {
    16.     echo "$descrip\n";
    17.     $arrmacport = snmprealwalk($ipswich, pass, ".1.3.6.1.2.1.17.1.4.1.2") // [b]- здесь скрипт встает[/b]
    18.     {
    19.        ...
    20.      }
    21.   }
    22. }
    23. ?>
    24.  
     
  2. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    перед началом выполнения кода берем время...в функции проверяем разницу по времени...если дофига, break или die
     
  3. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
  4. elition

    elition Активный пользователь

    С нами с:
    18 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Alost я немогу дождаться конца выполнения функции snmprealwalk - такчто то я несмогу проверить время выполнения - это видимо както в другом процесе должно быть реализованно

    avm 4 и 5 не катят - 4 время ожидания ответа (вот какраз оборудование мне отвечает - но ответ безконечный), а 5 это я так понял число попыток
     
  5. Alost

    Alost Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    Как то через многопоточность можно решить эту проблему.