- Introdução
- Melhores práticas
- Tenant
- Sobre o contexto do tenant
- Pesquisa de recursos em um tenant
- Gerenciamento de robôs
- Conectar Robôs ao Orchestrator
- Armazenamento de credenciais do robô no CyberArk
- Armazenamento de senhas do Unattended Robot no Azure Key Vault (somente leitura)
- Armazenamento de credenciais do Unattended Robot no HashiCorp Vault (somente leitura)
- Armazenando credenciais de Unattended Robots no AWS Secrets Manager (somente leitura)
- Exclusão de sessões não assistidas desconectadas e não responsivas
- Autenticação do robô
- Autenticação de robôs com credenciais de cliente
- Configuração de recursos de automação
- Soluções
- Auditar
- Configurações
- Registro
- Cloud Robots
- Visão Geral de Cloud Robots
- Execução de automações Unattended usando Cloud Robots - VM
- Carregamento de sua própria imagem
- Reutilização de imagens de máquinas personalizadas (para pools manuais)
- Redefinição de credenciais para uma máquina (para pools manuais)
- Monitoramento
- Atualizações de segurança
- Como solicitar uma avaliação
- Perguntas frequentes
- Configurando VPN para Robôs de nuvem
- Configurar uma conexão ExpressRoute
- Transmissão ao vivo e controle remoto
- Automation Suite Robots
- Contexto de Pastas
- Processos
- Trabalhos
- Apps
- Gatilhos
- Logs
- Monitoramento
- Índices
- Filas
- Ativos
- Sobre ativos
- Gerenciamento de ativos no Orchestrator
- Gerenciamento de ativos no Studio
- Armazenamento de ativos no Azure Key Vault (somente leitura)
- Armazenamento de ativos no HashiCorp Vault (somente leitura)
- Armazenando ativos no AWS Secrets Manager (somente leitura)
- Armazenamento de ativos no Google Secret Manager (somente leitura)
- Conexões
- Regras de Negócios
- Armazenar Buckets
- Servidores MCP
- Teste do Orquestrador
- Serviço Catálogo de recursos
- Integrações
- Solução de problemas
Guia do usuário do Orchestrator
- Você pode criar um único acionador de fila para uma fila. Isso também se aplica a filas que são compartilhadas entre várias pastas.
- Fusos horários do gatilho: o fuso horário definido em um gatilho não é restrito pelo fuso horário do tenant. No entanto, se você usar calendários de dias não úteis, não poderá definir fusos horários diferentes. Os gatilhos da fila são inicializados de acordo com o fuso horário definido no nível do gatilho. Os gatilhos de fila são iniciados com base no processamento de itens da fila. Os gatilhos da fila são desabilitados com base no fuso horário dos gatilhos.
Os gatilhos da fila iniciam instantaneamente um processo ao ser criado um disparo ou sempre que você adicionar um novo item a uma fila. O disparador é executado no ambiente associado ao processo selecionado.
Quando um grande número de itens de fila é adicionado em um curto espaço de tempo (por exemplo, usando AddQueueItem ou BulkAddQueueItems), o processo pode não iniciar imediatamente.Para lidar com essas situações, há um mecanismo de nova verificação implementado para garantir que o processo seja acionado quando os recursos estiverem disponíveis.
A implementação de gatilhos de fila é otimizada para consumir processos que possuem um loop interno para processar todos os itens de fila disponíveis antes do término. Se um processo não implementar essa estratégia, a experiência resultante será abaixo do ideal e pode não atender aos requisitos de negócios desejados.
Essas opções ajudam você a parametrizar as regras para o disparo de processo:
| Description | |
|---|---|
| Número mínimo de itens para disparar o primeiro trabalho | O trabalho de processamento de itens é iniciado apenas após a fila de destino ter pelo menos esse número de novos itens. Os itens da fila adiados não são contados. |
| Número máximo de trabalhos pendentes e em execução permitidos ao mesmo tempo | O número máximo permitido de trabalhos pendentes e em execução, contados juntos. Para dois ou mais trabalhos permitidos simultaneamente, a terceira opção precisa ser definida conforme descrito abaixo. |
| Outro trabalho é disparado para cada - novo item. | Um novo trabalho é disparado para cada número de novos itens adicionados além do número de itens definidos para a primeira opção. Habilitado apenas se houver 2 ou mais trabalhos permitidos ao mesmo tempo (definidos usando a opção descrita acima). |
| Após concluir os trabalhos, reavalie as condições e inicie novos trabalhos se possível | Se selecionado, o gatilho de fila é avaliado após a conclusão de cada trabalho e novos trabalhos são iniciados se houver robôs disponíveis. Isso complementa a verificação automática que ocorre a cada 30 minutos e ajuda a garantir que os itens da fila restantes sejam processados sem atrasos, quando possível. |
Para lidar com itens em fila que não sejam processados no momento que são enfileirados, incluindo itens recriados, uma vez a cada 30 minutos, uma verificação para itens não processados é executada por padrão e se a condição de acionamento for atendida, o gatilho é iniciado mais uma vez.
Você pode usar o parâmetro Filas - Frequência de verificação de itens de fila não processados (minutos) para ajustar o intervalo de verificação padrão de 30 minutos.
Essa verificação garante que todos os itens na fila sejam processados nas seguintes situações:
- Os itens da fila são adicionados à fila muito mais rápido do que podem ser processados com os recursos disponíveis.
- Os itens da fila são adicionados a uma fila em dias não úteis, mas só podem ser processados durante o horário comercial.
- O processamento de itens da fila é adiado para mais tarde. Após esse tempo passar, eles estão prontos para serem processados assim que forem identificados pela verificação de 30 minutos.
Observação:
Devido à verificação padrão de 30 minutos, há um risco de obstrução dos recursos durante o horário não comercial. Para evitar isso, certifique-se de que não haja itens não processados no fim do dia útil. Se isso não for uma possibilidade, certifique-se de que o processo disparado não exija intervenção humana.
Algoritmo de processamento de gatilho de fila
Variáveis
| Variável | Description |
|---|---|
newItems | Número de novos itens de fila disponíveis na fila. |
minItemsToTrigger | Número mínimo de itens necessários para disparar o primeiro trabalho. O primeiro trabalho começa apenas quando há pelo menos esse número de itens novos. |
maxConcurrentJobs | Número máximo de trabalhos pendentes e em execução permitidos ao mesmo tempo. Esse é o limite máximo em trabalhos paralelos. |
itemsPerJob | Número de itens adicionais necessários para disparar cada trabalho subsequente. Quando minItemsToTrigger é atingido, um trabalho se inicia.Para cada item adicional itemsPerJob além de minItemsToTrigger, mais um trabalho é iniciado—até maxConcurrentJobs. |
pendingJobs | Número de trabalhos atualmente em estado Pendente. |
runningJobs | Número de trabalhos nos estados Retomado, Em execução, Parando ou Encerrando. |
enablePendingJobsStrategy | Configuração booleana que determina se os trabalhos em execução contam em relação à capacidade restante. |
A configuração Gatilhos - Gatilhos de fila - habilitar Estratégia de trabalhos pendentes determina como o Orchestrator calcula a capacidade restante — o número de trabalhos adicionais que ele tem permissão para agendar:
- True – Capacidade restante =
maxConcurrentJobsmenospendingJobs. Use esta configuração quando se espera que os trabalhos em execução já tenham reivindicado seus itens de fila do status Novo . - FALSE – Capacidade restante =
maxConcurrentJobsmenospendingJobsmenosrunningJobs. Use essa configuração quando se espera que os trabalhos em execução ainda não tenham reivindicado seus itens de fila do status Novo.
O Orchestrator agenda o menor de dois valores: a capacidade restante e o número de trabalhos desejados com base nas contagens de itens da fila.A configuração, portanto, controla o quão conservadora ou agressivamente novos trabalhos são agendados.
Fórmulas
1. Capacidade 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. Trabalhos desejados (antes do limite de capacidade)
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. Trabalhos para agendar
jobsToSchedule = min(desiredJobs, remainingCapacity)
jobsToSchedule = min(desiredJobs, remainingCapacity)
Observações importantes
- Essa avaliação ocorre sempre que um único item de fila é adicionado, inclusive por meio de adição em massa.
- Para garantir que os itens de fila postergados (adiados) sejam levados em conta, cada gatilho de fila tem um agendamento associado que verifica novamente todo o algoritmo acima. Isso acontece por padrão a cada 30 minutos, mas pode ser reduzido para um mínimo de 10 minutos por meio da configuração do tenant Filas - Frequência de verificação de itens de fila não processados (minutos).
Observação:
Os itens adiados são processados apenas após o tempo de adiamento ter passado. O trabalho integrado que verifica itens adiados é executado a cada 30 minutos. No entanto, se um novo item for adicionado à mesma fila depois que um item adiado já tiver sido disponibilizado, o gatilho da fila será acionado novamente imediatamente, e o item adiado poderá ser coletado sem esperar pela próxima verificação agendada.
- O algoritmo é projetado para garantir que um trabalho seja iniciado assim que um limite for atingido e que, quando o limite for ultrapassado, trabalhos adicionais comecem a ajudar a processar o aumento acumulado. Ele não foi projetado para distribuir a carga de trabalho uniformemente entre as máquinas, mas para garantir a presença suficiente de trabalhos.
- Não há link rígido entre os trabalhos iniciados e os itens de fila que eles processam. O trabalho J não é necessariamente atribuído a itens de fila a, b ou c.
- Os resultados do algoritmo diferem dependendo se os itens de fila foram adicionados em massa ou individualmente, pois isso influencia o número de avaliações realizadas.
- Ao usar gatilhos de fila, você pode encontrar o seguinte alerta:
The trigger could not create a job as the maximum number of jobs has been reached.Este alertar é informativo e geralmente significa que um trabalho já estava em execução quando o Orchestrator tentou iniciar outro. Se você estiver confortável com sua capacidade de trabalho atual, pode ignorá-lo com segurança.
Exemplo
Cenário 1 - itens de fila adicionados individualmente
Para esse cenário, o parâmetro Habilitar estratégia de tarefas pendentes é definido como False. Para obter mais informações sobre como atualizar o valor, consulte Configurações de tenant.
Este cenário usa dois trabalhos:
- Um adiciona 3 itens por segundo por 20 segundos à fila de destino (60 itens no total).
- Um processa 1 item por segundo da fila de destino.
Configure o gatilho da seguinte forma:
- Número mínimo de itens para disparar o primeiro trabalho:
31 - Número máximo de trabalhos pendentes e em execução permitidos ao mesmo tempo:
3 - Outro trabalho é disparado para cada:
10novo(s) item
Depois de iniciar o trabalho que adiciona itens à fila:
- Após 11 segundos (33 itens), o primeiro trabalho de processamento de itens é disparado.
- Após mais 4 segundos (12 itens), o segundo trabalho de processamento de itens é disparado.
- Após mais 4 segundos (12 itens), o terceiro trabalho de processamento de itens é disparado.
Quando a adição de itens na fila terminar, o primeiro trabalho já terá processado 9 itens, o segundo 5 itens e o terceiro 1 item — 15 itens em 20 segundos processados por três trabalhos.
Três trabalhos processam os 45 itens restantes (60 − 15) a 1 item por segundo, concluindo em outros 15 segundos.Período total de processamento: 35 segundos.
Cenário 2 - itens de fila adicionados em massa
Para esse cenário, o parâmetro Habilitar estratégia de tarefas pendentes é definido como False. Para obter mais informações sobre como atualizar o valor, consulte Configurações de tenant.
Se os 60 itens de fila do Cenário 1 forem adicionados com uma operação em massa (quando nenhum trabalho estiver em execução ou pendente), 3 trabalhos serão criados.
Se pelo menos um trabalho for concluído antes do cronograma de reavaliação, outros trabalhos serão criados.
Exemplos da Estratégia habilitar trabalhos pendentes
Esses exemplos mostram como a configuração da estratégia habilitar trabalhos pendentes pode causar agendamento excessivo quando habilitada e agendamento insuficiente quando desabilitada.
Configuração do gatilho
| Configuração | Valor |
|---|---|
| Número mínimo de itens de fila para gatilho | 1 |
| Número máximo de trabalhos pendentes e em execução | 1.000 |
| Outro trabalho disparado a cada | 1 novo item |
| Após concluir o trabalho, reavalie | True |
| Habilitar estratégia de trabalhos pendentes | Verdadeiro (Parte 1) |
Pressuposto: leva 30 segundos para um trabalho mover um item da fila para fora do status Novo.
Parte 1: Agendamento excessivo com a Estratégia habilitar trabalhos pendentes habilitada
Etapa 1: você adiciona 1.100 itens à fila em massa, disparando 1.000 trabalhos.
Etapa 2: apenas 200 robôs estão disponíveis. 200 trabalhos são executados e 800 permanecem pendentes.
| Trabalhos | Contagem |
|---|---|
| Em execução | 200 |
| Pendente | 800 |
| Itens de Fila | Status |
|---|---|
| 200 | Em processo |
| 900 | Novo |
Etapa 3: os 200 trabalhos em execução são concluídos, disparando mais 200 trabalhos para execução.
| Trabalhos | Contagem |
|---|---|
| Em execução | 200 |
| Pendente | 600 |
| Itens de Fila | Status |
|---|---|
| 200 | Bem-sucedido |
| 200 | Em processo |
| 700 | Novo |
Etapa 4: como a opção Reavaliar após concluir o trabalho está habilitada, o gatilho é executado novamente em segundos.Com a Estratégia de habilitar trabalhos pendentes habilitada, o Orchestrator pressupõe que todos os 200 trabalhos em execução já moveram seus itens de fila para fora do status Novo—mesmo que isso leve 30 segundos.
Etapa 5: o cálculo do gatilho neste ponto:
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
Agendam-se mais 100 trabalhos.No entanto, como os 200 trabalhos em execução ainda não moveram seus itens para fora do status Novo (leva 30 segundos), o Orchestrator considera 700 Novos itens como sem cobertura quando apenas ~500 realmente precisam de novos trabalhos.O resultado é aproximadamente 100 trabalhos agendados em excesso.
O Orchestrator não rastreia a relação entre trabalhos individuais e itens de fila individuais, portanto, ele não pode detectar agendamento excessivo por conta própria. Identificar o agendamento excessivo requer rastreamento de estado externo.
Etapa 6: com a opção Habilitar estratégia de trabalhos pendentes desabilitada, a mesma situação produz:
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
Não há trabalhos adicionais agendados — o que está mais próximo do correto neste cenário.
Parte 2: subagendamento com a estratégia Habilitar trabalhos pendentes desabilitada
Etapa 1: nesse cenário, os trabalhos não finalizam simultaneamente. Dos 200 trabalhos iniciais, 100 são concluídos após 60 segundos e os outros 100 são concluídos após 90 segundos.
Etapa 2: os primeiros 100 trabalhos terminam, disparando mais 100 trabalhos.
| Trabalhos | Contagem |
|---|---|
| Em execução | 200 |
| Pendente | 700 |
| Itens de Fila | Status |
|---|---|
| 100 | Bem-sucedido |
| 200 | Em processo |
| 700 | Novo |
Etapa 3: como a opção Reavaliar após concluir o trabalho está habilitada, o disparo ocorre novamente em segundos.
Etapa 4: com a estratégia Habilitar tarefas pendentes 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
O sistema não agenda trabalhos adicionais.Correto — há 700 trabalhos pendentes para 700 Novos itens.
Etapa 5: com a Estratégia de habilitar trabalhos pendentes desabilitada:
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
Também não agendamos trabalhos adicionais aqui. No entanto, se houvesse menos trabalhos pendentes, a fórmula subagendaria: ela assume que os 200 trabalhos em execução ainda não recuperaram seus itens do status Novo, mesmo que 100 deles já o tenham feito.
Etapa 6: o Verificar itens de fila não processados acaba coletando os trabalhos não agendados por subagendamento quando executa seu cronograma periódico. Essa é a finalidade dessa verificação.
Summary
| Configuração | Suposição sobre a execução de trabalhos | Consequência |
|---|---|---|
| Habilitado (verdadeiro) | Já reivindicaram seus itens de fila | Pode sobrecarregar a agenda |
| Desabilitado (FALSE) | Ainda não reivindicaram seus itens de fila | Pode subagendar (mitigado com reverificações periódicas) |
Destino de Execução
Você pode configurar várias regras, dependendo de quais processos associados são executados.
| Description | |
|---|---|
| Conta | O processo é executado sob uma conta específica. Especificar apenas a conta resulta na alocação dinâmica da máquina pelo Orchestrator. Especificar a conta e o modelo de máquina significa que os trabalhos serão iniciados nesse par de conta-máquina. |
| Máquina | O processo será executado em uma das máquinas do host conectadas ao modelo de máquina selecionado. Especificar apenas o modelo de máquina resulta no Orchestrator alocando a conta dinamicamente. Especificar a conta e o modelo de máquina significa que os trabalhos serão iniciados nesse par de conta-máquina. Observação: certifique-se de que as licenças de runtime necessárias para executar o trabalho estejam alocadas para o modelo de máquina associado. |
| Hostname | Hostname Após selecionar um modelo de máquina, a opção Nome do host é exibida, permitindo selecionar a sessão de estação de trabalho/robô desejada para executar o processo. Todas as sessões disponíveis na pasta ativa são exibidas: não conectadas, desconectadas ou conectadas. Observação: certifique-se de que as licenças de runtime necessárias para executar o trabalho estejam alocadas para o modelo de máquina associado. |
Gatilho de fila criados usando UiPath Activities
Gatilhos de fila também podem ser criados por desenvolvedores de RPA no momento do design no Studio usando a atividade When New Item Added to Queue do pacote UiPath.Core.Activities .
O Orchestrator identifica esses tipos de gatilho como requisitos de pacote, e a única maneira de adicioná-los no Orchestrator é pela página Requisitos do pacote.
Qualquer configuração definida em tempo de design é refletida no Orchestrator e não pode ser modificada.
Por exemplo: quando um item de fila é adicionado à minha fila, desejo receber seus metadados como uma mensagem de registro. A diferença aqui é que o gatilho de fila instrui a automação a iniciar de dentro do fluxo de trabalho, em oposição aos gatilhos de fila do Orchestrator, que instruem a automação a iniciar de fora do fluxo de trabalho.
- Algoritmo de processamento de gatilho de fila
- Variáveis
- Fórmulas
- Exemplo
- Cenário 1 - itens de fila adicionados individualmente
- Cenário 2 - itens de fila adicionados em massa
- Exemplos da Estratégia habilitar trabalhos pendentes
- Configuração do gatilho
- Parte 1: Agendamento excessivo com a Estratégia habilitar trabalhos pendentes habilitada
- Parte 2: subagendamento com a estratégia Habilitar trabalhos pendentes desabilitada
- Destino de Execução
- Gatilho de fila criados usando UiPath Activities