Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wellington09

consultar servidor

Recommended Posts

Fiz alguns testes em minha maquina e fiquei com uma duvida, mesmo sabendo que a lógica funcionou perfeitamente.


Eu estava tendo um problema na consulta do servidor 1 e 3, então com o código abaixo o problema foi solucionado, pois como o servidor 2 está tudo ok ele descarta o servidor 1 e 3.


Mas isso é que eu estou deduzindo, pelo fato de ter funcionado sem problemas.


Mas minha pergunta é, quando o servidor 1 e 3 estiverem funcionando, o PHP irá passra por todos os servidores, mesmo sabendo que um deles funcionou ?


Quando digo que o servidor está tendo problema de consulta, é quando o mesmo demora muito para enviar as informações ao usuario que está solicitando a consulta e não obtem resposta, então passo para outro servidor.




$scc = stream_context_create(array(
'http' => array(
'timeout' => 5
)
)
);


$servidor = file_get_contents('http://servidor1.meu.com.br/teste.php?token=abc', 0, $scc);
$servidor = file_get_contents('http://servidor2.meu.com.br/teste.php?token=abc', 0, $scc);
$servidor = file_get_contents('http://servidor3.meu.com.br/teste.php?token=abc', 0, $scc);




Seria este o jeito certo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É melhor verificar com curl, assim saberá o status correto de cada um.

<?php

function checkStatus($url) {
    $agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; pt-pt) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";

    // initializes curl session
    $ch = curl_init();

    // sets the URL to fetch
    curl_setopt($ch, CURLOPT_URL, $url);

    // sets the content of the User-Agent header
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);

    // make sure you only check the header - taken from the answer above
    curl_setopt($ch, CURLOPT_NOBODY, true);

    // follow "Location: " redirects
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    // return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // disable output verbose information
    curl_setopt($ch, CURLOPT_VERBOSE, false);

    // max number of seconds to allow cURL function to execute
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);

    // execute
    curl_exec($ch);

    // get HTTP response code
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close($ch);

    if ($httpcode >= 200 && $httpcode < 300)
        return true;
    else
        return false;
}

// how to use
//===================
if (checkStatus("http://www.google.com"))
    echo "Website is up";
else
    echo "Website is down";
exit;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.