*Esto no es la respuesta a la pregunta. Solo explica el funcionamiento de la infraestructura para enviar entidades a flujo desde la base de datos.*
El procedimiento almacenado NO inicia los flujos, únicamente inserta registros en una tabla, creando una cola de flujos por iniciar, basada en la fecha y hora de inserción de cada registro.
Evolution al iniciar, en el proceso de WarmUp, crea una tarea en AppJobWinService, para procesar los registros que están en cola en la tabla de la base de datos.
La tarea se configura en el archivo web.config de Evolution, a través de dos parámetros que controlan el número de flujos por iniciar y el intervalo en segundos que se utiliza para la ejecución de la tarea.
<!-- Intervalo en segundos para la ejecución del job que inicia flujo en una entidad -->
<add key="InicioFlujoEntidadJobInterval" value="60" />
<!-- Número de registros a procesar en job que inicia flujo en una entidad -->
<add key="InicioFlujoEntidadJobRegistros" value="20" />
Estos parámetros le indican al AppJobWinService, cada cuánto se dispara el Job que obtiene los registros de la tabla de flujos por enviar y cuántos flujos inicia cada vez que se dispara.
Por defecto, Evolution inicia 20 flujos cada 60 segundos. Por lo tanto para enviar 5,500 flujos, se tomará:
5,500 / 20 * 60 = 16,500 segundos = 4.58 horas
(tiempo máximo, pero varía de acuerdo a las características del servidor)
Estas configuraciones se pueden modificar para que el proceso dure menos, pero tendrán consecuencias en el desempeño del servidor. Ya sea que se aumente la frecuencia de ejecución de la tarea o la cantidad de flujos por enviar, aumentará el consumo de CPU y memoria del AppJobWinService y del proceso que ejecuta el ApplicationPool del WorkflowService.
Entonces la recomendación es encontrar un balance entre los parámetros de configuración y los recursos del servidor. Si la carga de CPU y memoria se aumenta demasiado, Evolution se verá afectado, dejando de procesar "peticiones" de los usuarios. Si la carga de CPU o memoria es muy baja, se están desperdiciando recursos que pueden utilizarse para esta tarea.
answered
02 Jan '17, 22:30
Fernando Paz ♦♦
17.3k●8●16●35
accept rate:
51%
El procedimiento que se esta utilizando es el [wfl].[add_inicio_flujo_job], si alguien tuvo una experiencia similar de enviar a autorizar un volumen alto de transacciones que nos pudiera orientar como poder hacerlo sin que ocurra este problema por favor.