UiPath Documentation
orchestrator
latest
false
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Guía del usuario de Orchestrator

Desencadenadores de colas

Importante:
  • Puedes crear un desencadenador único de cola para una cola. Esto también se aplica a las colas que se comparten en varias carpetas.
  • Zonas horarias del desencadenador: la zona horaria establecida en un desencadenador no está restringida por la zona horaria del tenant. Sin embargo, si utilizas calendarios de días no laborables, no puedes establecer diferentes zonas horarias. Los desencadenadores de cola se inician según la zona horaria definida en el nivel de desencadenador. Los desencadenadores de cola se lanzan en función del procesamiento de artículos en cola. Los desencadenadores de cola se deshabilitan en función de la zona horaria del desencadenador.

Los desencadenadores de colas inician instantáneamente un proceso tras la creación del desencadenador o cada vez que se añade un nuevo elemento a una cola. El desencadenador se ejecuta en el ambiente asociado al proceso seleccionado.

Cuando se añade un gran número de artículos en cola en un corto período (por ejemplo, utilizando AddQueueItem o BulkAddQueueItems), el proceso puede no iniciarse inmediatamente. Para manejar tales situaciones existe un mecanismo de recomprobación implementado para garantizar que el proceso se active una vez que los recursos estén disponibles.

Importante:

La implementación de desencadenadores de cola está optimizada para los procesos de consumo que tienen un bucle interno para procesar todos los elementos de cola disponibles antes de salir. Si un proceso no aplica esta estrategia, la experiencia resultante no será óptima y podría no cumplir los requisitos empresariales deseados.

Estas opciones te ayudan a parametrizar las reglas para la activación de procesos:

Descripción
Número mínimo de elementos para desencadenar el primer trabajoLa tarea de procesamiento de elementos se inicia después de que la cola específica tenga este número de elementos nuevos. Los elementos diferidos de la cola no se cuentan.
Número máximo de trabajos en ejecución y pendientes permitidos de forma simultáneaEl número máximo de tareas pendientes y en ejecución, conjuntas. Para que se permita la ejecución simultánea de dos o más trabajos, deberás definir la tercera opción tal y como se describe a continuación.
Se desencadena otro trabajo para cada ____ nuevo/s elemento/s.Se desencadenará un nuevo trabajo para cada número de elementos nuevos además del número de elementos definidos para la primera opción. Solo habilitado si hay 2 o más trabajos simultáneos permitidos (definidos utilizando la opción descrita anteriormente).
Después de completar los trabajos, reevalúe las condiciones e inicie nuevos trabajos si es posibleSi se selecciona, el desencadenador de cola se evalúa después de cada finalización de trabajo y se inician nuevos trabajos si los robots están disponibles. Esto complementa la comprobación automática que se produce cada 30 minutos y ayuda a garantizar que los artículos en cola restantes se procesen sin retrasos cuando sea posible.

Para gestionar los elementos de la cola que no pueden procesarse en el momento en que se ponen en cola, incluidos los elementos reintentados, una vez cada 30 minutos se realiza por defecto una comprobación de los elementos no procesados y, si se cumple la condición de activación, se lanza de nuevo el desencadenador.

Puedes utilizar el parámetro Colas: frecuencia de comprobación de artículos en cola no procesados (minutos) para ajustar el intervalo de comprobación predeterminado de 30 minutos.

Esta comprobación garantiza que todos los elementos en la cola se procesen en las siguientes situaciones:

  • Los elementos en cola se añaden a la cola mucho más rápido de lo que se pueden procesar con los recursos disponibles.
  • Los elementos en cola se añaden a una cola durante días no laborables, pero solo se pueden procesar durante horas de trabajo.
  • El procesamiento de elementos en cola se pospone a un período de tiempo posterior. Después de que haya pasado ese tiempo, estarán listos para ser procesados una vez hayan sido identificados por la comprobación de 30 minutos.
    Nota:

    Debido a la comprobación por defecto de 30 minutos, existe el riesgo de que se obstruyan los recursos durante las horas no laborables. Para evitarlo, asegúrate de que no hay elementos sin procesar al final de la jornada laboral. En caso de que no sea posible, asegúrate de que el proceso desencadenado no requiera la intervención humana.

Algoritmo de procesamiento de desencadenadores de cola

Variables

VariableDescripción
newItemsNúmero de nuevos artículos en cola disponibles en la cola.
minItemsToTriggerNúmero mínimo de elementos necesarios para desencadenar el primer trabajo. El primer trabajo solo se inicia cuando hay al menos este número de elementos nuevos.
maxConcurrentJobsNúmero máximo de trabajos en ejecución y pendientes permitidos de forma simultánea. Este es el límite para los trabajos paralelos.
itemsPerJobNúmero de elementos adicionales necesarios para desencadenar cada trabajo posterior.Cuando se alcanza minItemsToTrigger, se inicia un trabajo. Por cada itemsPerJob elementos adicionales después de minItemsToTrigger, se inicia un trabajo más, hasta maxConcurrentJobs.
pendingJobsNúmero de trabajos actualmente en estado Pendiente.
runningJobsNúmero de trabajos en estados Reanudado, Ejecutando, Deteniéndose o Terminando.
enablePendingJobsStrategyConfiguración booleana que determina si los trabajos en ejecución se cuentan con la capacidad restante.

La configuración de Desencadenadores - Desencadenadores de cola: Estrategia de habilitar trabajos pendientes determina cómo Orchestrator calcula la capacidad restante: el número de trabajos adicionales que se le permite programar:

  • Verdadero : capacidad restante = maxConcurrentJobs menos pendingJobs. Utiliza esta configuración cuando se espera que los trabajos en ejecución ya hayan reclamado sus artículos en cola desde el estado Nuevo .
  • Falso: capacidad restante = maxConcurrentJobs menos pendingJobs menos runningJobs.Usa esta configuración cuando se espera que los trabajos en ejecución aún no hayan reclamado sus artículos en cola desde el estado Nuevo.

Orchestrator programa el menor de dos valores: la capacidad restante y el número de trabajos deseados en función del recuento de artículos en cola. Por lo tanto, la configuración controla la forma conservadora o agresiva con la que se programan los nuevos trabajos.

Fórmulas

1. Capacidad restante
if enablePendingJobsStrategy = true:
    remainingCapacity = maxConcurrentJobs - pendingJobs

if enablePendingJobsStrategy = false:
    remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs
if enablePendingJobsStrategy = true:
    remainingCapacity = maxConcurrentJobs - pendingJobs

if enablePendingJobsStrategy = false:
    remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs

2. Trabajos deseados (antes del límite de capacidad)

if newItems < minItemsToTrigger:
    desiredJobs = 0
else:
    desiredJobs = 1 + (newItems - minItemsToTrigger) / itemsPerJob   [integer division]
if newItems < minItemsToTrigger:
    desiredJobs = 0
else:
    desiredJobs = 1 + (newItems - minItemsToTrigger) / itemsPerJob   [integer division]
3. Trabajos para programar
jobsToSchedule = min(desiredJobs, remainingCapacity)
jobsToSchedule = min(desiredJobs, remainingCapacity)
Notas importantes
  • Esta evaluación se realiza cada vez que se añade un único artículo en cola, incluso mediante adición en bloque.
  • Para garantizar que se tengan en cuenta los artículos en cola pospuestos (aplazados), cada desencadenador de cola tiene una programación asociada que vuelve a comprobar todo el algoritmo anterior. Esto sucede de forma predeterminada cada 30 minutos, pero se puede reducir a un mínimo de 10 a través de la configuración de tenant Colas: frecuencia de comprobación de artículos en cola sin procesar (minutos).
    Nota:

    Los elementos pospuestos solo se procesan una vez transcurrido el tiempo de posposición. El trabajo integrado que comprueba los elementos pospuestos se ejecuta cada 30 minutos. Sin embargo, si se añade un nuevo elemento a la misma cola después de que un elemento pospuesto ya esté disponible, el desencadenador de cola se vuelve a desencadenar inmediatamente y el elemento pospuesto puede recogerse sin esperar a la siguiente comprobación programada.

  • El algoritmo está diseñado para garantizar que un trabajo se inicia una vez que se alcanza un umbral, y que cuando se supera el umbral, se inician trabajos adicionales para ayudar a procesar el aumento de la acumulación. No está diseñado para distribuir la carga de trabajo de manera uniforme entre las máquinas, sino para garantizar que haya suficientes trabajos.
  • No hay ningún enlace directo entre los trabajos iniciados y los artículos en cola que procesan. El trabajo J no está necesariamente asignado a los artículos en cola a, b o c.
  • Los resultados del algoritmo varían según si se añaden artículos en cola de forma individual o en bloque, ya que esto influye en el número de evaluaciones realizadas.
  • Al utilizar desencadenadores de cola, puedes encontrar la siguiente alerta: The trigger could not create a job as the maximum number of jobs has been reached. esta alerta es informativa y suele significar que ya se estaba ejecutando un trabajo cuando Orchestrator intentó iniciar otro. Si te sientes cómodo con tu capacidad de trabajo actual, puedes ignorarla de forma segura.

Ejemplo

Escenario 1: artículos en cola añadidos de forma individual

Para este escenario, el parámetro Habilitar estrategia de trabajos pendientes se establece en False. Para obtener más información sobre cómo actualizar el valor, consulta Configuración del tenant.

En este escenario se utilizan dos trabajos:

  • Uno añade 3 elementos por segundo durante 20 segundos a la cola de destino (60 elementos en total).
  • Uno procesa 1 elemento por segundo de la cola de destino.

El desencadenador se configura de la siguiente manera:

  • Número mínimo de elementos para desencadenar el primer trabajo: 31
  • Número máximo de trabajos pendientes y en ejecución permitidos simultáneamente: 3
  • Se desencadena otro trabajo para cada: 10 elemento(s) nuevo(s)

Después de que se inicie el trabajo que añade elementos a la cola:

  1. Después de 11 segundos (33 elementos), se desencadena el primer trabajo de procesamiento de elementos.
  2. Después de otros 4 segundos (12 elementos), se desencadena el segundo trabajo de procesamiento de elementos.
  3. Después de otros 4 segundos (12 elementos), se desencadena el tercer trabajo de procesamiento de elementos.

Cuando finalizó la adición de elementos de cola, el primer trabajo había procesado 9 elementos, el segundo 5 elementos y el tercero 1 elemento: 15 elementos en 20 segundos procesados por tres trabajos.

Los 45 elementos restantes (60 − 15) los procesan 3 trabajos a 1 elemento por segundo cada uno, completándose en otros 15 segundos. Periodo total de procesamiento: 35 segundos.

Escenario 2: artículos en cola añadidos en bloque

Para este escenario, el parámetro Habilitar estrategia de trabajos pendientes se establece en False. Para obtener más información sobre cómo actualizar el valor, consulta Configuración del tenant.

Si los 60 artículos en cola del Escenario 1 se añaden con una operación masiva (cuando no hay ningún trabajo en ejecución o pendiente), se crean 3 trabajos.

Si al menos un trabajo finaliza antes de la programación de reevaluación, se crean más trabajos.

Ejemplos de Estrategia de habilitar trabajos pendientes

Estos ejemplos muestran cómo la configuración de la Estrategia de habilitar trabajos pendientes puede causar una sobreprogramación cuando está Habilitada y una subprogramación cuando está deshabilitada.

Configuración del desencadenador

ConfiguraciónValor
Mínimo de artículos en cola para desencadenar1
Número máximo de trabajos pendientes y en ejecución1000
Otro trabajo desencadenado para cada1 elemento nuevo
Después de completar el trabajo, vuelve a evaluarTrue
Estrategia de habilitar trabajos pendientesVerdadero (Parte 1)

Suposición: un trabajo tarda 30 segundos en mover un artículo en cola del estado Nuevo.

Parte 1: sobreprogramar con la Estrategia de habilitar trabajos pendientes habilitada

paso 1: se añaden 1100 elementos a la cola en masa, lo que desencadena 1000 trabajos.

Paso 2: solo hay 200 robots disponibles. Se ejecutan 200 trabajos y 800 permanecen pendientes.

TrabajosRecuento
Ejecutando200
Pendiente800
Artículos en colaEstado
200En proceso
900Nuevo

Paso 3: se completan los 200 trabajos en ejecución, lo que desencadena la ejecución de 200 trabajos más.

TrabajosRecuento
Ejecutando200
Pendiente600
Artículos en colaEstado
200Correcto
200En proceso
700Nuevo

Paso 4: como Reevaluación después de completar el trabajo está habilitada el desencadenador vuelve a ejecutarse en cuestión de segundos. Con la Estrategia de habilitar trabajos pendientes habilitada, Orchestrator supone que los 200 trabajos en ejecución ya han movido sus artículos en cola fuera del estado Nuevo, aunque esto tarda 30 segundos.

Paso 5: el cálculo del desencadenador en este punto:

remainingCapacity = maxConcurrentJobs - pendingJobs = 1000 - 600 = 400
desiredJobs       = newItems - pendingJobs          = 700 - 600  = 100
jobsToSchedule    = min(100, 400)                               = 100
remainingCapacity = maxConcurrentJobs - pendingJobs = 1000 - 600 = 400
desiredJobs       = newItems - pendingJobs          = 700 - 600  = 100
jobsToSchedule    = min(100, 400)                               = 100

Se programan 100 trabajos más. Sin embargo, como los 200 trabajos en ejecución aún no han movido sus artículos fuera del estado Nuevo (tarda 30 segundos), Orchestrator trata 700 artículos nuevos como no cubiertos cuando solo ~500 necesitan realmente nuevos trabajos. El resultado es de aproximadamente 100 trabajos sobreprogramados.

Nota:

Orchestrator no realiza un seguimiento de la relación entre los trabajos individuales y los artículos en cola individuales, por lo que no puede detectar sobreprogramaciones. Identificar la sobreprogramación requiere un seguimiento del estado externo.

Paso 6: con la Estrategia de habilitar trabajos pendientes deshabilitada, se produce la misma situación:

remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 600 - 200 = 200
desiredJobs       = newItems - pendingJobs - runningJobs           = 700 - 600 - 200 = -1000
jobsToSchedule    = min(0, 200)                                                      = 0
remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 600 - 200 = 200
desiredJobs       = newItems - pendingJobs - runningJobs           = 700 - 600 - 200 = -100 → 0
jobsToSchedule    = min(0, 200)                                                      = 0

No se programan trabajos adicionales, lo que está más cerca de lo correcto en este escenario.

Parte 2: programación insuficiente con la estrategia Habilitar trabajos pendientes deshabilitada

Paso 1: En este escenario, los trabajos no finalizan simultáneamente.De los 200 trabajos iniciales, 100 se completan después de 60 segundos y los otros 100 se completan después de 90 segundos.

Paso 2: Los primeros 100 trabajos se completan, lo que desencadena 100 trabajos más.

TrabajosRecuento
Ejecutando200
Pendiente700
Artículos en colaEstado
100Correcto
200En proceso
700Nuevo

Paso 3: Como Reevaluar después de completar el trabajo está habilitada, el desencadenador vuelve a ejecutarse en cuestión de segundos.

Paso 4: con la estrategia Habilitar trabajos pendientes habilitada:

remainingCapacity = maxConcurrentJobs - pendingJobs          = 1000 - 700 = 300
desiredJobs       = newItems - pendingJobs                   = 700 - 700  = 0
jobsToSchedule    = min(0, 300)                                           = 0
remainingCapacity = maxConcurrentJobs - pendingJobs          = 1000 - 700 = 300
desiredJobs       = newItems - pendingJobs                   = 700 - 700  = 0
jobsToSchedule    = min(0, 300)                                           = 0

No se programan trabajos adicionales. Esto es correcto: hay 700 trabajos pendientes para 700 elementos nuevos.

Paso 5: con la Estrategia de habilitar trabajos pendientes deshabilitada:

remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 700 - 200 = 100
desiredJobs       = newItems - pendingJobs - runningJobs           = 700 - 700 - 200 = -2000
jobsToSchedule    = min(0, 100)                                                       = 0
remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 700 - 200 = 100
desiredJobs       = newItems - pendingJobs - runningJobs           = 700 - 700 - 200 = -200 → 0
jobsToSchedule    = min(0, 100)                                                       = 0

Aquí tampoco se programan trabajos adicionales. Sin embargo, si hubiera menos trabajos pendientes, la fórmula subprogramaría: supone que los 200 trabajos en ejecución aún no han reclamado sus elementos del estado Nuevo, aunque 100 de ellos ya lo hayan hecho.

Paso 6: Los trabajos no programados debido a la subprogramación finalmente se retoman cuando se ejecuta Comprobar artículos en cola no procesados en su programación periódica. Este es el propósito de esa comprobación.

Resumen
ConfiguraciónSuposición sobre la ejecución de trabajosConsecuencia
Habilitada (verdadero)Ya han reclamado sus artículos en colaPuede sobreprogramar
Deshabilitada (falso)Aún no han reclamado sus artículos en colaPuede estar subprogramado (mitigado por las repeticiones periódicas)

Objetivo de ejecución

Puedes configurar varias reglas en función de las cuales se ejecutan los procesos asociados.

Descripción

 

Cuenta

El proceso se ejecuta bajo una cuenta específica. Si se especifica solo la cuenta, Orchestrator asigna la máquina de forma dinámica. Especificar tanto la cuenta como la plantilla de máquina significa que el trabajo se lanza en ese mismo par cuenta-máquina.

Máquina

El proceso se ejecuta en una de las máquinas del host asociadas a la plantilla de máquina seleccionada. Si se especifica solo la plantilla de máquina, Orchestrator asigna la cuenta dinámicamente. Especificar tanto la cuenta como la plantilla de máquina significa que el trabajo se lanza en ese mismo par cuenta-máquina.

Nota: asegúrate de que las licencias de tiempo de ejecución necesarias para ejecutar el trabajo están asignadas a la plantilla de máquina asociada.

NombreDelHost

NombreDelHost

Después de seleccionar una plantilla de máquina, se muestra la opción nombre de host, que permite seleccionar la estación de trabajo/sesión de robot deseada para ejecutar el proceso.

Se muestran todas las sesiones disponibles en la carpeta activa, ya sean desconectadas, no conectadas o conectadas.

Nota: asegúrate de que las licencias de tiempo de ejecución necesarias para ejecutar el trabajo están asignadas a la plantilla de máquina asociada.

Desencadenadores de cola creados con UiPath Activities

Los desarrolladores de RPA también pueden crear desencadenadores de cola en tiempo de diseño en Studio, utilizando la actividad Cuando se añade un nuevo elemento a la cola del paquete UiPath.Core.Activities .

Orchestrator identifica estos tipos de desencadenadores como requisitos de paquete, y la única forma de añadirlos en Orchestrator es desde la página Requisitos de paquete.

Cualquier configuración establecida en tiempo de diseño se refleja en Orchestrator y no se puede modificar.

Por ejemplo: cuando se añade un artículo en cola a mi cola, quiero recibir sus metadatos como un mensaje de registro. La diferencia aquí es que el desencadenador de cola indica a la automatización que comience desde el interior del flujo de trabajo, a diferencia de los desencadenadores de cola de Orchestrator, que indican a la automatización que comience desde el exterior del flujo de trabajo.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado