¿Por qué mis instancias de app no se están reduciendo según lo esperado?

Cuando el tráfico a la aplicación se ralentiza de forma que la app empieza a disminuir, observa que las instancias no desaparecen.

Cuando la carga de trabajo entrante se ralentiza en la aplicación, Code Engine empieza a reducir automáticamente una aplicación basándose en sus valores de escalado configurados. Code Engine envía un mensaje SIGTERM a la aplicación. Su código debe reaccionar a esta señal y apagarse. Si el código no maneja el mensaje SIGTERM, las instancias de aplicación permanecen en estado Terminating durante el valor de tiempo de espera de solicitud configurado (valor predeterminado: 300 segundos).

Pruebe una de estas soluciones.

  • Revise la documentación sobre cómo funciona el escalado. Consulte Configuración del escalado de una aplicación.

  • Revise los valores configurados para el escalado automático para la aplicación.

    • Desde la consola, vaya a la página de la aplicación. Los valores de escalado automático se encuentran en la pestaña Configuración > Tiempo de ejecución.
    • Con la CLI, ejecute el mandato ibmcloud ce app get para visualizar los detalles de la app.
  • Asegúrese de que el código maneja los mensajes SIGTERM. Para que las aplicaciones se escalen correctamente, el código de la aplicación debe manejar una señal SIGTERM. Cuando Code Engine se escala automáticamente hacia abajo, se envía una señal SIGTERM a la aplicación.

    El siguiente ejemplo de código maneja un mensaje SIGTERM porque cierra la conexión con el servidor HTTP iniciado por la aplicación después de que la aplicación reciba una señal de que la instancia finaliza.

    const server = // start the HTTP server
    
    process.on('SIGTERM', () => {
      console.info('SIGTERM signal received.');
      server.close(() => {
        console.log('Http server closed.');
      });
    });
    
  • Revise los detalles de las instancias de la app para ayudarle a resolver los problemas de la app. Consulte Obtención de detalles sobre instancias de app.