Pesquisar

Desenvolvimento Web

22/05/2021 às 08:18

Descrição do Projeto:

Um do meu sistema processo que funciona da seguinte forma.

São aberta 10 requisições para um webservice via multicurl em PHP 5.6 simples.

A requisição é para um webservice em jaon que pode voltar result = OK ou NOK.

O multicurl dá um timeoute 40 segundos, e depois pego resultados e confiro se voltou alguum resultado OK.

Neste meio tempo, algumas requisições voltaram OK, algumas NOK e algumas não vão ser capturadas pois não terminaram

O que queria é que quando alguma dessas requisições, neste meio tempo de 40 segundos, voltasse OK, que ele pegasse imediatamente o resultado dele (sem esperar esse timeout, e cancelasse as demais requisições.

$qtde = 10;
if(isset($_GET['qtde'])){
$qtde = $_GET['qtde'];
}
if($qtde<1){
echo "Nada a Requisitar";
exit();
}
$multiCurl = array();
$result = array();
$mh = curl_multi_init();
for ($i = 1; $i <= $qtde; $i++) {
$fetchURL = TURBO_URL.'/wsemquestao';
debug($fetchURL);
$multiCurl[$i] = curl_init();
curl_setopt($multiCurl[$i], CURLOPT_URL,$fetchURL);
curl_setopt($multiCurl[$i], CURLOPT_HEADER,0);
curl_setopt($multiCurl[$i], CURLOPT_RETURNTRANSFER,1);
curl_setopt($multiCurl[$i], CURLOPT_TIMEOUT, TIMEOUT_WAITING_TURBO_CLIENT);
curl_multi_add_handle($mh, $multiCurl[$i]);

$index=null;
$laco = 0;
do {
curl_multi_exec($mh,$index);

} while($index > 0);

foreach($multiCurl as $k => $ch) {

try {

$result[$k] = curl_multi_getcontent($ch);
debug($result[$k]);//var_dump(curl_multi_getcontent($ch));
$o = json_decode($result[$k]);

if(@$o->status === true){
$result = json_encode($o, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
$index = 0;

VAR_DUMP($result);

exit();
break;

}

} catch (Exception $e) {
continue;
}

}
// close
curl_multi_close($mh);

}

Habilidades desejadas:

PHP PHP5

Atividades do cliente nesse projeto:

Última visualização: 16/07/2021 às 15:02

Última interação: 24/05/2021 às 15:58

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Desenvolvimento Web
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 3
Propostas excluídas: 2
Interessados: 3
Valor Mínimo: R$ 50,00

Cliente

Freelancer vencedor

Propostas (1)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Criação de site para imobiliária - Enviar na proposta o valor da criação do site. O domínio será pago separadamente para a plataforma. Precisaríamos também do acesso à plataforma para...

Criar landing page para campanhas de tráfego pago - Criar landing page para campanhas de tráfego pago, com prazo de entrega entre o final de dezembro e a primeira quinzena de janeiro.

Instalação de API Node em servidor - Vou disponibilizar um servidor e um código Node. O programador terá que instalar o código nesse servidor e deixar a API funcionando. O serviço será feito por ace...

Atualização de site de rifas - Olá. Precisa atualizar um site de rifas, colocando mais opções de pagamento, como Mercado Pago e outros. Além disso, aumentar as opções de finalizaç...

Criação de site WordPress para agência de turismo - LEIA ATÉ O FIM COM ATENÇÃO. PROPOSTAS CÓPIA/COLA NÃO SERÃO CONSIDERADAS. Estamos buscando um(a) desenvolvedor(a) com experiência em WordPress que po...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.