#!/usr/bin/php -q Retorna uma conexão para o banco de dados. * -sGravaLog -> Grava log de erros gerados pelo serviço. * -sCreateMemory -> Aloca memoria para sincronização de dados. * ***************************************************************************************** */ error_reporting(E_ERROR); ini_set('display_errors', 0); ini_set("memory_limit", "512M"); /* * Inclui funçoes genéricas. */ include("util/util.php"); include("util/sharedMem.php"); include("funcoes/ssupervisor_aux.php"); /* * Conexão com o banco de dados. */ $conn = false; /* * Controla mensagens de erro. */ $ultMsg = ''; try { /* * Armazena dados da ultima consulta. */ $oldAgt = array(); $olDac = array(); $numCile = 0; $shmKeyAgt = sCreateMemory(SHM_IPC_FILE_AGENTE, array(0, NUM_MAX_AGENTES_ON, TAM_SEGMENTO_AGENTE)); echo "IdFile: $shmKeyAgt\n"; while (true) { try { /* * Estabelece uma conexão com o banco de dados. */ if (!$conn) { $conn = sGetConnection(); } /* * Basicamente copia os dados da tabela supervisor agentes, e informações d * as filas para memoria */ //$olDac = SetDadosDac($conn, $shmKeyDac, $olDac); /* * Basicamente copia os dados da tabela supervisor agentes, e informações d * as filas para memoria */ $oldAgt = SetDadosAgente($conn, $shmKeyAgt, $oldAgt); /* * Ciclo de atualização. */ usleep((1000000 * 10)); } catch (Exception $ex) { echo $ex->getMessage(); } } /* * Fecha os blocos de memória. */ ShmClose($shmKeyAgt); } catch (Exception $ex) { echo $ex->getMessage(); } function sGetConnection() { /* * Se precisar de uma conexão diferente da padrão, espcifique sua propria connection string. * $connStr = sprintf("host='%s' port='%s' dbname='%s' user='%s' password='%s'", '127.0.0.1', '5432', 'pbx', 'contacte', 'ctepgSQL'); */ $connStr = ''; $connStr = !$connStr ? GetDefStrDb() : $connStr; $conn = pg_pconnect($connStr); if (!$conn) { GeraExcept("Não foi possível estabelecer uma conexão com o banco de dados!"); } return $conn; } function SetDadosAgente($conn, $shmKeyAgt, $oldAgt = array()) { $arDadosAgente = array(); $query = "select * from pbx_supervisor_agentes"; $result = pg_query($conn, $query); if (!$result) { GeraExcept("Não foi possível consultar os dados do agente!"); } while ($dados = pg_fetch_array($result)) { $arDadosAgente[$dados["nome"]] = $dados; } $arDadosAgente = serialize($arDadosAgente); if (!ShmWrite($shmKeyAgt, $arDadosAgente, 0)) { GeraExcept("Não foi possível gravar os dados do agente!"); } return $arDadosAgente; } ?>