- Primeros pasos
- Mejores prácticas
- Tenant
- Acerca del contexto de tenant
- Buscar recursos en un tenant
- Gestionar robots
- Conexión de los robots a Orchestrator
- Almacenar credenciales de robots en CyberArk
- Almacenar contraseñas de robots desatendidos en Azure Key Vault (solo lectura)
- Almacenar las credenciales de robots desatendidos en HashiCorp Vault (solo lectura)
- Almacenamiento de credenciales de Unattended Robot en AWS Secrets Manager (solo lectura)
- Eliminar sesiones desconectadas y sin respuesta no atendidas
- Autenticación de Robot
- Autenticación de robots con credenciales de cliente
- Configurar las capacidades de automatización
- Soluciones
- Auditoría
- Configuración
- Registro
- Cloud Robots
- Descripción general de Cloud Robots
- Ejecución de automatizaciones unattended utilizando robots en la nube: VM
- Cargar tu propia imagen
- Reutilizar imágenes de máquina personalizadas (para grupos manuales)
- Restablecer credenciales para una máquina (para grupos manuales)
- Supervisión
- Actualizaciones de seguridad
- Pedir una prueba
- Preguntas frecuentes
- Configuración de VPN para robots en la nube
- Configurar una conexión de ExpressRoute
- Transmisión en vivo y control remoto
- Automation Suite Robots
- Contexto de carpetas
- Procesos
- Trabajos
- Apps
- Desencadenadores
- Desencadenadores de tiempo
- Desencadenadores de colas
- Desencadenadores de eventos
- Administrar días no laborables
- Registros
- Supervisión
- Índices
- Colas
- Activos
- Sobre los activos
- Gestión de Activos en Orchestrator
- Gestión de Activos en Studio
- Almacenar activos en Azure Key Vault (solo lectura)
- Almacenamiento de activos en HashiCorp Vault (solo lectura)
- Almacenamiento de activos en AWS Secrets Manager (solo lectura)
- Almacenamiento de activos en Google Secret Manager (solo lectura)
- Conexiones
- Reglas empresariales
- Depósitos de almacenamiento
- Servidores MCP
- Pruebas de Orchestrator
- Servicio de catálogo de recursos
- Integraciones
- Solución de problemas
Guía del usuario de Orchestrator
- 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.
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 trabajo | La 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ánea | El 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 posible | Si 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
| Variable | Descripción |
|---|---|
newItems | Número de nuevos artículos en cola disponibles en la cola. |
minItemsToTrigger | Nú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. |
maxConcurrentJobs | Número máximo de trabajos pendientes y en ejecución permitidos simultáneamente. Este es el límite máximo de trabajos paralelos. |
itemsPerJob | Número de elementos adicionales necesarios para desencadenar cada trabajo posterior. Cuando se alcanza minItemsToTrigger , se inicia un trabajo. Por cada itemsPerJob elementos adicionales más allá de minItemsToTrigger, se inicia un trabajo más, hasta maxConcurrentJobs. |
pendingJobs | Número de trabajos actualmente en estado Pendiente. |
runningJobs | Número de trabajos en estado Reanudado, En ejecución, Deteniendo o Terminando. |
enablePendingJobsStrategy | Configuración booleana que determina si los trabajos en ejecución se cuentan en la capacidad restante. |
La configuración de la estrategia Desencadenadores - Desencadenadores de cola - Habilitar trabajos pendientes determina cómo calcula Orchestrator la capacidad restante: el número de trabajos adicionales que se permite programar:
- Verdadero : capacidad restante =
maxConcurrentJobsmenospendingJobs. 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 =
maxConcurrentJobsmenospendingJobsmenosrunningJobs. Utiliza 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 de los recuentos de elementos de la cola. Por lo tanto, la configuración controla cuán conservadora o agresivamente 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 existe un vínculo fijo 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:
10elemento(s) nuevo(s)
Después de que se inicie el trabajo que añade elementos a la cola:
- Después de 11 segundos (33 elementos), se desencadena el primer trabajo de procesamiento de elementos.
- Después de otros 4 segundos (12 elementos), se desencadena el segundo trabajo de procesamiento de elementos.
- 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) son procesados por 3 trabajos a 1 elemento por segundo cada uno, completándose en otros 15 segundos. Tiempo 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.
Habilitar ejemplos de estrategia de trabajos pendientes
Estos ejemplos muestran cómo la configuración de la estrategia Habilitar trabajos pendientes puede causar un exceso de programación cuando se habilita y una programación insuficiente cuando se deshabilita.
Configuración del desencadenador
| Configuración | Valor |
|---|---|
| Artículos en cola mínimos para desencadenar | 1 |
| Número máximo de trabajos pendientes y en ejecución | 1000 |
| Otro trabajo desencadenado para cada | 1 elemento nuevo |
| Después de completar el trabajo, reevaluar | True |
| Habilitar estrategia de trabajos pendientes | Verdadero (parte 1) |
Suposición: un trabajo tarda 30 segundos en sacar un elemento de la cola del estado Nuevo .
Parte 1: Programación excesiva con la estrategia Habilitar trabajos pendientes habilitada
Paso 1: se añaden 1100 elementos a la cola de forma masiva, lo que desencadena 1000 trabajos.
Paso 2: solo hay 200 robots disponibles. 200 trabajos se ejecutan y 800 permanecen pendientes.
| Trabajos | Recuento |
|---|---|
| Ejecutando | 200 |
| Pendiente | 800 |
| Artículos en cola | Estado |
|---|---|
| 200 | En proceso |
| 900 | Nuevo |
Paso 3: Los 200 trabajos en ejecución se completan, lo que desencadena la ejecución de 200 trabajos más.
| Trabajos | Recuento |
|---|---|
| Ejecutando | 200 |
| Pendiente | 600 |
| Artículos en cola | Estado |
|---|---|
| 200 | Correcto |
| 200 | En proceso |
| 700 | Nuevo |
Paso 4: como Después de completar el trabajo, reevaluar está habilitado, el desencadenador se ejecuta de nuevo en segundos. Con la estrategia 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 en realidad 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
Hay 100 trabajos más programados. Sin embargo, debido a que los 200 trabajos en ejecución aún no han movido sus elementos del estado Nuevo (tarda 30 segundos), Orchestrator trata 700 Nuevos elementos como descubiertos cuando solo unos 500 realmente necesitan nuevos trabajos. El resultado es aproximadamente 100 trabajos sobreprogramados.
Orchestrator no realiza un seguimiento de la relación entre trabajos individuales y artículos en cola individuales, por lo que no puede detectar el exceso de programación por sí solo. Identificar el exceso de programación requiere un seguimiento de estado externo.
Paso 6: con la estrategia Habilitar trabajos pendientes deshabilitada, la misma situación produce:
remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 600 - 200 = 200
desiredJobs = newItems - pendingJobs - runningJobs = 700 - 600 - 200 = -100 → 0
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 se acerca más a 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, desencadenando 100 trabajos más.
| Trabajos | Recuento |
|---|---|
| Ejecutando | 200 |
| Pendiente | 700 |
| Artículos en cola | Estado |
|---|---|
| 100 | Correcto |
| 200 | En proceso |
| 700 | Nuevo |
Paso 3: Como Después de completar el trabajo, reevaluar está habilitado, el desencadenador se ejecuta de nuevo en 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 hay trabajos adicionales programados. Esto es correcto: hay 700 trabajos pendientes para 700 elementos nuevos .
Paso 5: con la estrategia Habilitar trabajos pendientes deshabilitada:
remainingCapacity = maxConcurrentJobs - pendingJobs - runningJobs = 1000 - 700 - 200 = 100
desiredJobs = newItems - pendingJobs - runningJobs = 700 - 700 - 200 = -200 → 0
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 hay trabajos adicionales programados. Sin embargo, si hubiera menos trabajos pendientes, la fórmula infraprogramarí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 una programación insuficiente se recogen finalmente cuando la comprobación de artículos en cola no procesados se ejecuta en su programación periódica. Este es el propósito de esa comprobación.
Resumen
| Configuración | Suposición sobre la ejecución de trabajos | Consecuencia |
|---|---|---|
| Habilitado (verdadero) | Ya han reclamado sus artículos en cola | Puede sobreprogramar |
| Deshabilitado (falso) | Aún no han reclamado sus artículos en cola | Puede infraprogramarse (mitigado por nuevas comprobaciones 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.
- Algoritmo de procesamiento de desencadenadores de cola
- Variables
- Fórmulas
- Ejemplo
- Escenario 1: artículos en cola añadidos de forma individual
- Escenario 2: artículos en cola añadidos en bloque
- Habilitar ejemplos de estrategia de trabajos pendientes
- Configuración del desencadenador
- Parte 1: Programación excesiva con la estrategia Habilitar trabajos pendientes habilitada
- Parte 2: programación insuficiente con la estrategia Habilitar trabajos pendientes deshabilitada
- Objetivo de ejecución
- Desencadenadores de cola creados con UiPath Activities