"PHP" / Говнокод #11509 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
foreach ($balancedSlots as $cluster) {
                if ($cluster['type']=='cluster'){
                        foreach ($cluster['servers'] as $ip=>$server) {
                                if ($GLOBALS['mode']!='test'){
                                        $GLOBALS['dataVar'][$i] = array();
                                        if (isset($server['snmp_server'])){
                                                $p = preg_split('/,/', $server['snmp_server']);
                                                $GLOBALS['dataVar'][$i]['proc_handle'] = popen(dirname(__FILE__).'/snmp_server.sh '.$p[0].' '.$p[1], 'r');
                                                $GLOBALS['dataVar'][$i]['snmp_params'] = $p;
                                                $GLOBALS['dataVar'][$i]['snmp_result'] = array('ifName'=>array(), 'counter'=>array());
                                        }
                                        else {
                                                //print "proc_handle: ".$server['snmp_cmd']."\n";
                                                $GLOBALS['dataVar'][$i]['proc_handle'] = popen($server['snmp_cmd'], 'r');
                                        }
                                        $GLOBALS['dataVar'][$i]['server']=$server;
                                        $GLOBALS['dataVar'][$i]['server']['ip']=$ip;
                                        $GLOBALS['dataVar'][$i]['eb'] = event_buffer_new($GLOBALS['dataVar'][$i]['proc_handle'], "read_result", NULL, "error_func", $i);
                                        event_buffer_timeout_set($GLOBALS['dataVar'][$i]['eb'], 4, 60);
                                        event_buffer_base_set($GLOBALS['dataVar'][$i]['eb'], $GLOBALS['base']);
                                        event_buffer_enable($GLOBALS['dataVar'][$i]['eb'], EV_READ);
                                }
                                elseif ($GLOBALS['mode']=='test')
                                {
                                        if (!array_key_exists($ip, $testLastServers)) {
                                                $testLastServers[$ip]=0;
                                        }
                                        if ($testServersData[$ip][$testServersIteration]!==false){
                                                $GLOBALS['result'][$ip] = new ArrayObject(array('counter64'=>$testLastServers[$ip]+$testServersData[$ip][$testServersIteration], 'ts'=>$GLOBALS['mesure_time']));
                                                $testLastServers[$ip] = $GLOBALS['result'][$ip]['counter64'];
                                        }
                                }
                                $i++;
                        }
                }
        }

Попытка одного товарища использовать библиотеку libevent. Видно щедрое использование глобальных переменных.

Запостил: Bdfy Bdfy, (Updated )

Комментарии (13) RSS

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8