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 e manutenção de site - Web Designer & Desenvolvedor (E-commerce Shopify – Moda e Acessórios) Desenvolvimento (preferencial em Shopify): • Configurar tema (Shopify), customizando layout e funcionali...

Correção de problema no banco de dados WordPress - Olá, pessoal. Temos um site WordPress criado com o Elementor PRO e WP Rocket, e parece que há um problema no banco de dados. Pelo que verifiquei, parece que há uma duplica&cce...

Desenvolvimento de sistema de agendamento online - Objetivo do projeto: Desenvolver e implementar um sistema web responsivo de agendamento online para pequenas clínicas, com painel multiusuário, login de profissionais, exportaç...

Aplicativo de agendamento para barbearia - Preciso de uma aplicação PWA de agendamento para barbearia. Referência: https://www.inbarberapp.com/ Quero algo parecido com esse. Não quero na Play Store. Somente web P...

Ajustes de layout e criação de sistema EAD - Eu tenho uma plataforma EAD simples para uma escola de treinamento de brigadistas, onde os vídeos são hospedados no Vimeo e puxamos de lá. Gostaríamos de criar uma p&aa...

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.