= Solicitação Hackney (via HTTPost) não retorna resultado durante a execução. = Olá, tenho um bot de bate-papo simples escrito em elixir. Um dos meus casos de uso é enviar alguma consulta para um URL específico. Eu esperava que o servidor de consulta respondesse um pouco lento (alguns segundos). Escrevi meu código e na conexão da minha máquina o código de consulta está rodando normalmente. Mas quando implantei meu aplicativo em um VPS, a consulta simplesmente não retorna uma resposta, nem um erro ou qualquer mensagem Isso meio que me deixa louco, pois não tenho como depurá-lo, pois a própria chamada parece estar travada e não retorna indefinidamente. A execução do curl manualmente no contêiner funciona, a execução da solicitação dentro do iex que controla o nó em execução funciona, mas no sistema ativo não funciona. Alguém poderia me ajudar talvez? Segue abaixo o trecho do código em questão: http_config = [ hackney: [pool: :tl], recv_timeout: 30_000, timeout: 30_000 ] com {:ok, body}<- Jason.encodesrc"=>consulta {: ok, %HTTPoison.Response{body: body}}<- HTTPoison.post(url, body,http_config), {:ok, resultado"=>resultado, "src_lang"=>src_lang}}<- Jason.decode(body) do result end |>IO.inspect(label: :result) Editar: adicionei a linha de inspeção representativa. Às vezes, esse snippet é executado normalmente, às vezes não. Quando eu hospedei este programa no VPS dedicado do meu amigo, ele nunca teve esse problema. Mas quando me mudei para o Vultr está com esse problema. Eu também tentei em outro provedor VPS que usei no passado (ramnode) e tenho o mesmo problema A primeira coisa que salta para mim é que sua declaração with não tem outra cláusula, então você não vai pegar onde está falhando Tente adicionar uma correspondência else e pattern no {:error, reason} tupla e escrevê-la no log com sth como `Logger.error("Falha na postagem http: #{inspecionar erro Você deve ser capaz de ver por que está falhando p.s. provavelmente funciona em um shell remoto em seu sistema local devido à chamada de rede ser feita na máquina local (executando o nó remoto) em vez de no servidor de implantação. Para garantir que a chamada de rede esteja acontecendo no servidor remoto, gere um processo no nó remoto (Node.spawn, por exemplo) que faz a chamada http Ah, desculpe, o trecho não conta toda a história, mas depois disso, não importa o que aconteça, tenho uma linha do logger que informa que o comando terminou de ser executado e, no final, se o resultado for {:error, _ } Eu registro. Mas, no meu caso, a linha que informa que a função terminou de executar nunca é chamada, assim como a solicitação de postagem, apenas em espera, a mão nunca é retornada Eu uso releases e executo o binário de release remoto no servidor de implantação para conectar ao nó atual em execução.