horse icon indicating copy to clipboard operation
horse copied to clipboard

Server em Linux com várias requisições ao mesmo tempo;

Open maiquelparisotto opened this issue 1 year ago • 6 comments

Boa tarde; Estou realizando alguns testes com Horse, rodando em Linux. No meu caso estou tendo várias requisições simultâneas, e estou recebendo erro nestas situações.

Algo que preciso configurar, ou tratar?

Meu projeto principal ficou assim:

TControllerSend.Registry;
TControllerCancel.Registry;
TcontrollerSearch.Registry;
THorse.Listen(9000);
class procedure TControllerSend.Registry;
begin
  THorse.Post('/send',send);
end;

maiquelparisotto avatar Aug 18 '22 20:08 maiquelparisotto

Bom dia... Esse "várias requisições" seria que número aproximadamente? Muitas coisas podem influenciar, como se você usa variável global ou dependendo do recurso que está utilizando e o quão pesada é essa requisição... Faça um teste de várias requisições simultâneas da requisição de exemplo do ping respondendo pong que é bem provável que todas responderão com sucesso.

gabrielbaltazar avatar Aug 22 '22 11:08 gabrielbaltazar

Adiciona essas configurações antes de fazer o THorse.Listen(9000)

THorse.MaxConnections := 10000;
THorse.ListenQueue := 300;

dliocode avatar Aug 24 '22 19:08 dliocode

Show, pessoal. Aqui funcionou corretamente. Uma dúvida, como capturar o headers do POST recebido?

maiquelparisotto avatar Sep 22 '22 11:09 maiquelparisotto

Para capturar qualquer Header, basta fazer isso: Req.Headers['MEU HEADER']

dliocode avatar Sep 22 '22 11:09 dliocode

Depois verifica todas as opções presentes no Req Lembra de uma coisa..

Se for para alterar algo para o usuario, a funcionalidade estará no parametro Res. Se for para capturar algo da requisição que o servidor recebeu, a funcionalidade estará no parametro Req.

Se você quiser alterar ou adicionar algum Header para o usuario final, você vai usar o Res.AddHeader()

dliocode avatar Sep 22 '22 11:09 dliocode

Funcionou corretamente, obrigado pessoal. Sobre o retorno, eu preciso enviar para outro endpoint, que não é o mesmo da requisição do POST..

Tentei assim: res.RedirectTo('endpoint');

Porém não esta trazendo o Json de resposta.

maiquelparisotto avatar Sep 22 '22 13:09 maiquelparisotto