Creación de bucles para una actividad
Tipos de bucle
Puede crear e implementar bucles de varias formas. Por ejemplo, puede incluir un componente de script en un servicio que procese iterativamente registros que recupere de una base de datos hasta que se hayan procesado todos los registros. Puesto que puede incluir JavaScript en las implementaciones, puede desarrollar fácilmente la lógica para repetir la acción hasta que se cumpla una determinada condición.
Además de implementar bucles mediante scripts, se pueden configurar las actividades de proceso para bucles simples y de instancia múltiple tal y como se describe en la tabla siguiente. Si desea que la tarea de tiempo de ejecución resultante de una actividad se ejecute más de una vez, puede configurar el comportamiento de bucle para esa actividad. Únicamente puede configurar comportamiento de bucle de actividades que tengan flujos de secuencia entrantes o salientes.
| Tipo de bucle | Descripción |
|---|---|
| Bucle simple | Cuando modele una actividad con bucles simples, el número necesario de instancias se generará dinámicamente, hasta el valor máximo de bucle que especifique. Una actividad de bucle simple se ejecutará secuencialmente hasta que se ejecute la última instancia de la actividad. Cuando ejecute una actividad que esté configurada para bucles simples, se generará una única señal y se utilizará para cada instancia de la actividad, lo que, en efecto, reinicia la tarea de tiempo de ejecución. |
| Bucle de varias instancias | El bucle de varias instancias ejecuta dinámicamente varias instancias exclusivas de la misma actividad de forma secuencial o en paralelo. Cuando se ejecuta una actividad que está configurada para bucles de varias instancias, se crea una señal exclusiva para cada instancia de la actividad. |
Rendimiento
Los bucles simples y multiinstancia crean tareas a partir del número de pasos de una actividad hasta el número máximo que se haya especificado en la configuración. Los bucles no están diseñados para manejar cientos de tareas ni para enviar y revisar grandes conjuntos de variables. Por el contrario, están diseñadas para un pequeño número de tareas, normalmente menos de diez. Un número mayor puede afectar significativamente al rendimiento. Por lo tanto, establezca preferentemente el número máximo de bucles en menos de 10. Por ejemplo, si en una tarea de aprobación de contratación, tres de cinco entrevistadores tienen que aprobar el candidato, debe definir que la tarea de aprobación haga bucle cinco veces y el sistema creará cinco tareas. Una vez tres de los entrevistadores aprueban al candidato, se cierran dos tareas y empieza el siguiente paso de la actividad.
En aquellos casos en los que sea necesario un bucle durante más de 10 tareas, cree un escenario de prueba de carga y pruebe si el bucle funciona para su diseño de aplicación. Si el bucle se ejecuta de forma más lenta de la esperada, es posible que tenga que cambiar la aplicación de la forma correspondiente. Por ejemplo, si el bucle de tareas es un proceso con muchos pasos y varios coaches (en lugar de uno solo), considere el uso del método siguiente: utilizar un agente encubierto (UCA) para llamar a un suceso de mensaje de inicio (SME) para crear más instancias relacionadas desde ese punto, que se trabajan en paralelo a la instancia padre en hebras distintas. De esta manera, el cuello de botella se traslada de una hebra de un servidor a muchas hebras (M) de varios nodos (N).