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 sex shop - Preciso de alguém para criar o site do projeto que estou iniciando para venda de produtos de sex shop. O branding da marca já foi criado; preciso que o site siga o branding para n&ati...

E-commerce premium para marca de roupas com checkout integrado - Olá! Sou o proprietário da marca de roupas RAIW e estou procurando um profissional ou agência para desenvolver um e-commerce moderno, elegante e de alta performance. O objetiv...

Sistema de avaliação e gestão de frota - Olá! Quero solicitar uma proposta para o desenvolvimento de um sistema completo para a Campos Soluções Veicular. Como referência de funcionamento e organizaç&atil...

Integração com sistema ANTT (TAC) - Preciso criar um integrador para conectar à agência ANTT para emissão e alteração de ANTT/RNTRC, além de incluir ou retirar placas. A integraçã...

Montagem de blog no Blogger com integração PayPal - Assistir a um vídeo que explica toda a montagem de um blog no Blogger, seguindo o padrão explicado no YouTube, e configurar o PayPal para recebimento em dólar americano. A con...

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.