Conexão sendo encerrada

Olá,

Estou trabalhando em um plugin para o Discourse chamado Disraptor, que funciona como um tipo de proxy reverso para permitir a incorporação de outro site no contexto do Discourse.

O site que deve ser incorporado dessa forma atualmente leva muito tempo para atender certas rotas. Por isso, uma página de “not_found” renderizada é recebida após 30 segundos.

Estou ciente de que o tempo limite padrão para os workers do Unicorn é de 30 segundos no ambiente de produção. Comecei aumentando esse tempo alterando a configuração do Unicorn. Analisando o log de erros do Unicorn, posso confirmar que o worker é encerrado mais tarde agora, mas mesmo assim o template de “not_found” continua sendo renderizado (antes que o worker seja encerrado).

Após mais buscas, não consegui encontrar nenhuma pista sobre de onde vem esse tempo limite de 30 segundos ou onde ele está definido. Embora o longo tempo de resposta seja um problema em si e provavelmente será corrigido no futuro, no momento seria perfeito se houvesse uma possibilidade de alterar esse tempo limite.

Alguém tem uma ideia de como isso poderia funcionar?

Obrigado antecipadamente!

Acredito que o timeout do unicorn de 30 segundos venha daqui: discourse/config/unicorn.conf.rb at main · discourse/discourse · GitHub

Seria bom se houvesse uma maneira de alterá-lo, por exemplo, por ENV[“UNICORN_TIMEOUT”] em produção.