Por que minhas instâncias de app não estão sendo reduzidas conforme esperado?
Quando o tráfego para seu aplicativo desacelera, de modo que seu app começa a diminuir, você observa que as instâncias não desaparecem.
Quando a carga de trabalho recebida está lenta para seu aplicativo, o Code Engine começa a reduzir automaticamente a capacidade de um aplicativo com base em seus valores de ajuste de escala configurados. Code Engine envia uma mensagem SIGTERM
para seu aplicativo. Seu código deve reagir a este sinal e desligar. Se seu código não manipular a mensagem SIGTERM, suas instâncias do aplicativo permanecerão no status Terminating durante o valor de tempo limite de solicitação
configurado (padrão: 300 segundos).
Tente uma dessas soluções.
-
Revise a documentação sobre como o ajuste de escala funciona.. Consulte Configurando o ajuste de escala do aplicativo.
-
Revise os valores configurados para ajuste automático de escala para seu aplicativo.
- No console, acesse a página do aplicativo. As configurações de ajuste automático de escala estão na guia Configuração> Tempo de execução
- Com a CLI, execute o comando
ibmcloud ce app getpara exibir detalhes de seu app.
-
Assegure que seu código manipule mensagens SIGTERM. Para que os aplicativos reduzam a capacidade de forma limpa, seu código do aplicativo deve manipular um sinal SIGTERM Quando o Code Engine é reduzido automaticamente, um sinal SIGTERM é enviado para seu aplicativo.
O exemplo de código a seguir manipula uma mensagem SIGTERM porque ela fecha a conexão com o servidor HTTP que foi iniciado pelo aplicativo após o aplicativo receber um sinal de que a instância termina.
const server = // start the HTTP server process.on('SIGTERM', () => { console.info('SIGTERM signal received.'); server.close(() => { console.log('Http server closed.'); }); }); -
Revise os detalhes de suas instâncias de app para ajudar a solucionar problemas de seu app. Consulte Obtendo detalhes sobre as instâncias do app