UiPath Documentation
orchestrator
latest
false
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Guia do usuário do Orchestrator

Gatilhos de fila

Importante:
  • 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.

Importante:

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 trabalhoO 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 tempoO 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ívelSe 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ávelDescription
newItemsNúmero de novos itens de fila disponíveis na fila.
minItemsToTriggerNú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.
maxConcurrentJobsNúmero máximo de trabalhos pendentes e em execução permitidos ao mesmo tempo. Esse é o limite máximo em trabalhos paralelos.
itemsPerJobNú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.
pendingJobsNúmero de trabalhos atualmente em estado Pendente.
runningJobsNúmero de trabalhos nos estados Retomado, Em execução, Parando ou Encerrando.
enablePendingJobsStrategyConfiguraçã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 = maxConcurrentJobs menos pendingJobs. 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 = maxConcurrentJobs menos pendingJobs menos runningJobs. 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: 10 novo(s) item

Depois de iniciar o trabalho que adiciona itens à fila:

  1. Após 11 segundos (33 itens), o primeiro trabalho de processamento de itens é disparado.
  2. Após mais 4 segundos (12 itens), o segundo trabalho de processamento de itens é disparado.
  3. 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çãoValor
Número mínimo de itens de fila para gatilho1
Número máximo de trabalhos pendentes e em execução1.000
Outro trabalho disparado a cada1 novo item
Após concluir o trabalho, reavalieTrue
Habilitar estratégia de trabalhos pendentesVerdadeiro (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.

TrabalhosContagem
Em execução200
Pendente800
Itens de FilaStatus
200Em processo
900Novo

Etapa 3: os 200 trabalhos em execução são concluídos, disparando mais 200 trabalhos para execução.

TrabalhosContagem
Em execução200
Pendente600
Itens de FilaStatus
200Bem-sucedido
200Em processo
700Novo

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.

Observação:

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 = -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

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.

TrabalhosContagem
Em execução200
Pendente700
Itens de FilaStatus
100Bem-sucedido
200Em processo
700Novo

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 = -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

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çãoSuposição sobre a execução de trabalhosConsequência
Habilitado (verdadeiro)Já reivindicaram seus itens de filaPode sobrecarregar a agenda
Desabilitado (FALSE)Ainda não reivindicaram seus itens de filaPode 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.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades