​Hoy en día existe una marcada tendencia en trabajar sobre la nube, se manejan términos como SAAS (Software as a Service), IAAS (Infrastructure as a Service) y PAAS (Platform as a Service). El alcance de estas tecnologías permite ofrecer alternativas de solución a las necesidades de los clientes que antes estaban restringidos a las capacidades disponibles de su infraestructura de hardware y software.

 

El caso que deseo mostrar en este artículo es la utilización de la herramienta WebJos o Trabajos Web de Azure como un recurso para la ejecución de procesos en lotes desatendidos en el contexto de una aplicación web en Azure. Tenemos una aplicación ejecutándose en un App Service en Azure consumiendo una base de datos Azure SQL, por necesidades del negocio se requiere la ejecución de procesos en lotes a nivel de base de datos; sin embargo, solo Azure SQL Database Managed Instance o SQL On -Premisse tienen disponible a SQL Server Agent para poder administrar la ejecución de tareas o “Jobs”, otra opción sería implementar SQL Server Integration Services (SSIS) SSIS pero esto podría acarrear costos adicionales.

 

Como alternativa de solución están los WebJobs o Trabajos web, la cual es una herramienta sin costo adicional que permite la ejecución de procesos en segundo plano en Azure, bajo los siguientes formatos de archivos o scripts:

·         .cmd, .bat, .exe

·         .ps1

·         .sh

·         .php

·         .py

·         .js

·         .jar

 

 

A continuación, voy a mostrar el paso a paso para poder crear un Trabajo web o Webjob en Azure:

 

Paso 1:  Entramos a una sesión de Azure con las credenciales requeridas en la dirección: https://portal.azure.com

Imagenes1.jpg​ 

Paso 2:  En el “Dashboard”, específicamente donde se visualiza la sección “Todos los recursos”, ubicamos los ítems “Aplicación web” o “App Service”. Dentro del contexto de esos ítems se crean los trabajos web o WebJobs.

Imagenes2.jpg 

Paso 3:  Una vez seleccionado uno de los ítems “Aplicación web” o “App Service”, podemos ver menú indicado a continuación, ahí se ubica el ítem “Trabajos web” y procedemos a seleccionarlo.

 Imagenes3.jpg

Paso 4:  Una vez seleccionado el ítem “Trabajos web” podremos ver la siguiente consola de administración. Ahí se visualizan los distintos trabajos creados para el contexto elegido, y se puede visualizar cada trabajo o “job”, tipo, estado y si es programado.​

 Imagenes4.jpg

Paso 5:  Para crear una nueva tarea se selecciona el botón de “+ Agregar”​

Imagenes5.jpg 

Paso 6: Al seleccionar el botón “+ Agregar”, aparece la siguiente pantalla donde se configura el trabajo web.

Imagenes6.jpg
 

·         En el recuadro de “Nombre”, se coloca el nombre del Trabajo Web. Colocaré el valor: “ProcesoLotes”

·         En el recuadro “Carga de archivos”, se selecciona a través de un cuadro de dialogo el archivo ejecutable, script, etc. que se desea correr, en este caso subiré el archivo: “EjecucionProceso.exe”.

·         El recuadro “Tipo” tiene dos opciones:

Imagenes7.jpg 

·         La opción “Continuo” significa que el proceso se ejecuta una vez que se crea la tarea hasta que el proceso termine. Se puede volver a lanzar manualmente si se detiene. La opción “Desencadenados” permite establecer un horario de ejecución del proceso, esta es la opción que utilizaremos como ejemplo en este artículo. Para más información de este punto puede consultar este link.

 

·         Al seleccionar “Desencadenados”, se habilitan las siguientes opciones:

Imagenes8.jpg
 

·         El recuadro “Desencadenadores” tiene las opciones “Programado” y “Manual”. Para el caso del ejemplo utilizaremos “Programado”, y se habilita a su vez el recuadro “Expresión CRON”, el cual permite establecer el momento deseado para la ejecución del proceso, para más información de esta sintaxis puede consultar el siguiente link.

·         Una vez configurado todos los recuadros, ya queda visible el trabajo web en la consola de Azure como se puede ver a continuación.

Imagenes9.jpg
 

Paso 7:  Existen dos parámetros que debemos configurar en el contexto donde se alojan los trabajos web para que se ejecuten de la forma deseada:

·         WEBJOBS_IDLE_TIMEOUT: Permite establecer el tiempo de ejecución máximo de  un trabajo web en segundos. Si el proceso es de larga duración y no se establece un valor adecuado en este parámetro, Azure detiene el proceso luego de determinado tiempo.

·         WEBSITE_TIME_ZONE: Establece la zona horaria para la ejecución el trabajo web. Por defecto está en: Coordinated Universal Time (UTC)”.

·         Para establecer estos parámetros nos dirigimos a la siguiente ruta en el contexto donde se ejecutan los trabajos web: “Inicio =>App Services => “Contexto de la solución”. Una vez ahí seleccionamos “Configuración de la aplicación” como se muestra en la imagen a continuación.

Imagenes10.jpg
 

·         Una vez seleccionado “Configuración de la aplicación”, aparece la siguiente pantalla:

Imagenes11.jpg
 

·         Seleccionamos la opción: “+ Agregar nuevo valor” para agregar los parámetros indicados anteriormente (WEBJOBS_IDLE_TIMEOUT y WEBSITE_TIME_ZONE). Para establecer los valores del parámetro WEBSITE_TIME_ZONE, consulte el siguiente link.

Imagenes11-2.jpg
 

·         Una vez agregados los valores la consola de Azure debe quedar de la siguiente forma:

Imagenes12.jpg
 

Paso 8: Una vez seguidos estos pasos lo que queda es monitorear la ejecución de los Trabajos web en la consola de Azure, para realizar esto seleccione el Trabajo web que quiere revisar y marque la opción “Registros” como se muestra en la imagen a continuación:

 Imagenes13.jpg

Una vez realizado esto se puede ver el historial de ejecución.Imagenes14.jpg


 

Espero que este artículo les sea de utilidad, si quieren aprender más sobre desarrollo de aplicaciones, desarrollo en SharePoint o de SharePoint en general por favor visita nuestro site de Eigo Academy para conocer nuestra oferta de cursos.