Servicios en segundo plano en Jitterbit App Builder
Descripción general
La función Servicios en segundo plano de App Builder permite a App Builder ejecutar eventos de larga duración en una cola en segundo plano limitada. El servicio se aloja en la aplicación web de App Builder en IIS. Mientras el sitio web esté en ejecución, el servicio en segundo plano también lo estará. No requiere instalación ni configuración adicional.
Hay dos componentes involucrados en el servicio en segundo plano de App Builder:
Cola de fondo
A menudo, un desarrollador crea un evento que realiza varias acciones, posiblemente abarcando múltiples fuentes de datos, o incluso llamadas REST a sistemas externos. La cola en segundo plano permite al desarrollador especificar que el evento se ejecute en segundo plano en lugar de en primer plano. Esto ofrece varias ventajas:
Al hacer clic en un botón para ejecutar un evento, el control se devuelve inmediatamente al cliente. Este puede continuar con su trabajo mientras el trabajo continúa ejecutándose en el sistema alojar. La cola de trabajo en segundo plano ahorra recursos. Al colocar eventos en segundo plano, que de otro modo ocuparían recursos, el desarrollador permite que App Builder limite la ejecución de dichos eventos. A medida que aumenta la carga del sistema, se reduce el paralelismo de la cola de trabajos. Esto permite que el servidor web funcione con más subprocesos y mayor acceso a la CPU. Por ejemplo, si 100 personas inician sesión en el sitio y hacen clic en un botón que ejecuta un evento, IIS necesitaría gestionar 100 ejecuciones simultáneas de ese evento. Al enviar el evento a la cola de trabajos, podemos reducir la concurrencia para que solo se ejecute un pequeño número simultáneamente, lo que libera recursos para el sitio web. La cola en segundo plano monitoriza eventos y almacena el historial. Tenemos previsto ampliar esta funcionalidad a todos los eventos en el futuro. Por ahora, si le interesa mantener un registro del historial de ejecución de un evento, incluyendo:
- ¿Quién organizó el evento?
- ¿Cuándo lo hicieron?
- ¿Cuánto tiempo tardó en correr?
- ¿Tuvo éxito? (si no, ¿qué errores ocurrieron)?
Esta información está disponible en la sección Monitoreo del IDE. En la página inicial encontrará una lista de servicios en ejecución y una lista de programaciones o eventos en ejecución.
Nota
El servicio en segundo plano recorta las tablas de registro diariamente. Elimina los eventos exitosos con más de 7 días de antigüedad y los eventos fallidos con más de 30 días de antigüedad.
Para especificar que un evento se ejecute en segundo plano, el desarrollador debe localizarlo, hacer doble clic en él, editarlo y seleccionar Iniciar ahora (en segundo plano) como Tipo de ejecución. A partir de ese momento, App Builder pondrá el evento en cola para su ejecución cada vez que un usuario lo ejecute.
Si su evento tiene reglas de validación y estas devuelven un error, App Builder devolverá los resultados inmediatamente al usuario junto con los mensajes de validación y cancelará la ejecución del evento en la cola. Advertencia: No se admiten validaciones al ejecutar el evento en segundo plano.
Si corresponde, considere cambiar el mensaje de éxito del evento para que transmita al usuario final que la operación se está ejecutando en segundo plano.
La cola de trabajos de App Builder permanece inactiva indefinidamente, utilizando recursos mínimos hasta que se pone en cola un evento. No sondea los trabajos que se van a ejecutar. En su lugar, utiliza el patrón asincrónico basado en tareas de Microsoft, lo que garantiza el uso completo de los recursos del sistema.
Programador
App Builder permite programar la ejecución de eventos en lugar de requerir su ejecución manual. El programador, al igual que la cola de trabajos, se ejecuta en el servicio en segundo plano mientras la aplicación web esté en ejecución. App Builder actualmente admite un modo de ejecución para un evento programado, denominado ejecución multifila. Esto es diferente a un evento ejecutado mediante un clic de botón. Cuando un usuario ejecuta un evento en un objeto de negocio, se ejecuta en una sola fila. Cuando el programador ejecuta un evento, se ejecuta en todo el objeto de negocio. Esto significa que la cola recorre cada fila del objeto de negocio y ejecuta el evento programado en esa fila. Para ello, pone cada fila en cola para su ejecución en la cola de trabajos.
Dado que los eventos programados se envían a la cola de trabajos para su ejecución, App Builder puede aprovechar las ventajas de rendimiento que ofrece la limitación de la ejecución de estos conjuntos de datos potencialmente grandes. Esto también proporciona la misma visibilidad a los eventos programados en lo que respecta a la monitorización y el registro. Se generará una entrada en el registro para cada fila ejecutada por el evento programado. La información de la clave principal de cada fila se incluirá en el registro para facilitar la detección y depuración de problemas.
Para programar la ejecución de un evento, búsquelo, haga doble clic en él y configure el tipo de ejecución como Iniciar mediante programación (en segundo plano). Esto permitirá vincular el evento a una programación.
Para crear una programación, vaya a la sección Monitoreo en el IDE. Haga clic en Programaciones y cree una nueva.
Los siguientes son los tipos de programaciones que admite App Builder:
- Ejecución única: Seleccione un día y hora futuros para la ejecución del evento. App Builder ejecutará el evento a la hora programada y luego desactivará la programación.
- Ejecución periódica - Ejecuta el evento cada X segundos/minutos/horas.
- Ejecución diaria: Ejecuta el evento a una hora exacta cada X días. Puede configurarse para que se ejecute todos los días, cada tres días, cada siete días, etc.
- Ejecución Semanal: El evento se ejecuta a una hora exacta, en un día exacto de la semana, cada X semanas. En este programa, el desarrollador puede seleccionar días específicos de la semana para ejecutar el evento. Por ejemplo, se ejecuta cada dos domingos y miércoles a las 19:00.
- Ejecución activada - Ejecuta el evento en respuesta a una señal, como por ejemplo un usuario que inicia sesión en el sistema.
Para agregar un evento a una programación, vaya a la página Programaciones y haga clic en el ícono Eventos. Agregue el evento a la programación, especificando una concurrencia máxima y el ID de usuario que lo ejecutará. Si el objeto de negocio Evento devuelve varias filas, App Builder intentará ejecutar el evento en cada fila con la concurrencia especificada. Por ejemplo, si el objeto de negocio devuelve 100 filas y la concurrencia máxima es 3, App Builder intentará ejecutar 3 instancias del evento simultáneamente hasta que se haya ejecutado 100 veces (una por cada fila).
Nota
Consulta el siguiente artículo sobre Ejecutar como usuario si desea ejecutar un evento programado como un usuario específico.
Instancias de servicio
Esta página permite al usuario detener/iniciar el servicio en segundo plano y supervisar los servicios activos y los trabajos en ejecución.
- Proporciona la fecha de inicio del servicio y su tiempo de actividad.
-
Los botones Detener e Iniciar permiten detener el servicio en segundo plano.
-
Detener deshabilitará todos los trabajos en ejecución y cancelará los trabajos en cola que estén en ejecución. También detendrá la cola de los eventos programados o invocados.
- Iniciar reiniciará el servicio en segundo plano, borrará la tabla de actividades y comenzará a programar y a dar soporte a eventos en segundo plano.
- La página no actualiza constantemente su estado en la interfaz de usuario, por lo que incluye el botón Actualizar. Al hacer clic en Actualizar, se cargará la información más reciente de las instancias y trabajos del servicio en ejecución sin necesidad de que el usuario actualice el navegador.
Página de registros
- Muestra mensajes de la instancia del servicio que se está ejecutando actualmente.
- Disponible en la página "Instancias del Servicio"
Cancelación de un trabajo
La forma en que App Builder cancela un trabajo varía según el estado del trabajo y el tipo de trabajo que se esté ejecutando.
- Estado pendiente: El trabajo se ha creado y está en cola, pero aún no se está ejecutando. En este estado, App Builder lo cancela inmediatamente.
- Estado en ejecución: Si el trabajo está en ejecución, App Builder le envía una solicitud de cancelación. Algunas operaciones tardan más en cancelarse que otras, y algunas no permiten interrupciones. Cuando el trabajo alcanza un punto que permite la cancelación, se cancelará y actualizará su información de actividad.
- Trabajo programado: Si el trabajo es programado y ha creado n trabajos para ejecutar el evento programado, al cancelar el trabajo programado también se cancelarán los trabajos que inició. En otras palabras, se cancela la ejecución completa del programa.