Ejecutar apps web en segundo plano

En este breve entrada encontrarás como ejecutar las apps web como procesos en segundo plano, de forma que se simplifique su ejecución sin bloquear la línea de comandos o permitiendo su ejecución automatizada como proceso de arranque del servidor sobre el que se encuentren. Esta información es una traducción al castellano del contenido original que puedes encontrar aquí, en el área de desarrolladores de Xojo.

Servicio Windows

En Windows se utiliza un Servicio para ejecutar una app en segundo plano. Esto sólo es posible con las apps de Consola (aquellas que no requieren de interfaz de usuario). Dado que las apps web son en realidad aplicaciones de consola como subclase de ServiceApplication, resulta fácil ejecutarlas como un Servicio Windows. La única parte que puede presentar alguna dificultad es en realidad su instalación como Servicio Web.

Windows dispone de un comando para ello, sc y que es la abreviatura de “service control”.

Estos son los pasos para instalar tu app web standalone como Servicio Web:

  • Compila tu app como App Web Standalone y cópiala en una ubicación accesible. Asegúrate de anotar el número de puerto que has utilizado durante la compilación de la app. Querrás asegurarte de que el número de puerto no esté ya en uso por parte del sistema. Por ejemplo, podrías utilizar el puerto 8104.
  • Accede a la línea de Comandos de Windows con privilegios de administrador
  • Utiliza el comando sc para instaar el servicio como sigue:

sc greate XojoWebSvc type= own start= auto binpath= c:\Ruta\Al\Ejecutable\AppWeb.exe

  • Tras pulsar la tecla Return verás: [SC] CreateService SUCCESS
  • Abre ahora el Panel de Control y dirígete al Gestor de Servicios. Está ubicado en la sección Herramientas del Administrador y se llama Servicios.
  • Encuentra el servicio que terminas de crear. Este aparecerá listado por el nombre de la aplicación. Haz clic en él y seleccionar Iniciar.
  • Esto es todo. Tu app web estará ejecutándose ahora como un servicio. Para probarlo, navega hasta el URL en tu navegador: http://localhost:8104

Para detener el servicio, haz clic en el Gestor de Servicios y haz clic en Detener.

Daemon Linux

Un daemon es esencialmente un proceso en segundo plano. Es muy fácil utilizar un daemon para desplegar tus aplicaciones web Standalon en servidores web remotos.

Estos son los pasos para crear una app web Standalone que pueda funcionar como daemon:

  • Añade una única línea de código en el manejador de evento App.Open (o bien App.Run en una app de Consola):

Call Daemonize

  • Compila ahora la app como Standalone y selecciona un número de puerto que no esté en uso en el equipo. Por ejemplo, podrías utilizar el puerto 8104. Copia la app a una ubicación accesible.
  • Abre el Terminal y navega a la ubicación de tu app.
  • Inicia la app:

./MiAppWeb

  • Aparecerá de inmediato la línea de comandos dado que la app estará funcionando ahora como daemon.
  • Verifica que el daemon esté funcionando mediante el uso del comando ps:

ps -C MiAppWeb

Esto es todo. Tu aplicación estará funcionando ahora como daemon. Para probarla, navega hasta el URL en tu navegador: http://localhost:8104

Si estás conectado en remoto a un Servidor Linux (usando SSH), entonces al desconectar también se saldrá de la aplicación que se haya iniciado de esta forma. En vez de ello, probablemente querrás iniciar la app utilizando el sufijo & o bien utilizando el comando nohup.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *