- Introdução
- Melhores práticas
- Tenant
- Ações
- Contexto de Pastas
- Automações
- Processos
- Trabalhos
- Gatilhos
- Sobre gatilhos
- Gerenciar gatilhos
- Uso das expressões de Cron
- Logs
- Monitoramento
- Filas
- Ativos
- Armazenar Buckets
- Test Suite - Orchestrator
- Catálogos de Ações
- Perfil
- Administrador do Sistema
- Servidor de Identidade
- Autenticação
- Outras configurações
- Integrações
- Robôs Clássicos
- Solução de problemas
Guia do usuário do Orchestrator
Sobre gatilhos
Os gatilhos permitem executar trabalhos de forma pré-planejada, em intervalos regulares (gatilhos de tempo) ou sempre que novos itens forem adicionados às filas (gatilhos de fila). A página Gatilhos permite que você crie novos gatilhos, gerencie os existentes, e também inicie um trabalho instantaneamente para qualquer gatilho existente.
Acionar fusos horários
O fuso horário definido em um gatilho não é restrito pelo fuso horário do locatário. No entanto, se você usar calendários de dias não úteis, não poderá definir fusos horários diferentes.
Os acionadores de tempo são lançados de acordo com o fuso horário definido no nível do acionador. Os acionadores de fila são ativados com base no processamento de itens de fila.
Os acionadores de tempo e fila são desabilitados com base no fuso horário do acionador.
Permite que você agende um horário recorrente para iniciar um trabalho.
Depois de adicionar um acionador de tempo para um processo, você pode esperar o seguinte:
- O acionador cria um trabalho no horário agendado, com as opções de alocação, conta e máquina de sua escolha. Isso não equivale à execução real do trabalho.
- O trabalho criado na etapa 1 é executado quando um robô fica disponível. Por padrão, se o gatilho já tiver um trabalho pendente, nenhum novo trabalho será criado até que o primeiro seja executado. O número de tarefas pendentes que o acionador pode criar é controlado pelo parâmetro
Triggers.JobsCountStrategy
.
Os valores de entrada para processos que suportam parâmetros de entrada e saída também podem ser gerenciados nesse nível. Você pode configurar várias regras, dependendo de quais processos associados são executados.
Description | |
---|---|
Alocar de forma dinâmica |
Defina quantas vezes um processo deve ser executado de acordo com o gatilho fornecido. Esta opção permite que você use seus recursos ao máximo. Após um Robô ficar Disponível, ele executa o processo indicado de acordo com o gatilho fornecido. |
Usuário |
O trabalho é executado pelo robô não assistido associado ao usuário selecionado. |
- Se você definir vários gatilhos no mesmo Robô e o horário de execução deles se sobreporem pelo menos uma vez, os trabalhos serão enfileirados, em um estado pendente. O Robô executa os trabalhos enfileirados em ordem cronológica.
-
Se o mesmo processo estiver agendado no mesmo Robô várias vezes e seu horário de execução se sobreporem, apenas um processo será enfileirado, em um estado pendente. Por exemplo, se o processo A no Robô X estiver agendado para ser executado às 11:20, 11:21 e 11:25, o comportamento será o seguinte:
- às 11h20, o primeiro processo é executado.
-
Se a primeira execução termina antes do segundo gatilho:
-
O segundo gatilho é processado.
- Se essa execução termina antes do gatilho de 11:25, este último também será executado.
- Se a execução do gatilho de 11:21 não termina antes do de 11:25, este último é adicionado a uma fila, em um estado pendente.
-
- Se a execução NÃO termina antes do segundo gatilho:
-
O gatilho de 11:21 é colocado em uma fila, em um estado pendente.
- Se a execução do gatilho de 11:21 termina antes do de 11:25, este último também é executado.
- Se a execução do gatilho de 11:21 inicia e não termina antes do de 11:25, este último gatilho é colocado em uma fila, em um estado pendente.
- Se o gatilho de 11:21 ainda estiver pendente quando o de 11:25 deve iniciar, este último não é executado nem adicionado a uma fila e a seguinte mensagem é exibida: Os Robôs já têm trabalhos pendentes para este processo.
-
-
Se você quiser executar um processo várias vezes em quaisquer Robôs que estejam disponíveis, você terá a possibilidade de fazer exatamente isso usando a opção Alocar dinamicamente na guia Executar destino. Os trabalhos são enfileirados, em um estado pendente, no ambiente correspondente e cada vez que um Robô fica disponível, o primeiro trabalho na linha é executado. Desta forma, um Robô nunca fica disponível enquanto há trabalhos pendentes.
Digamos que você deseja executar um processo 7 vezes. No momento em que seu gatilho é disparado, 7 trabalhos pendentes são adicionados à carga de trabalho do ambiente, sem que sejam atribuídos a Robôs específicos. Há alguns cenários possíveis:
- Há pelo menos sete Robôs disponíveis na hora do disparo - Um trabalho é atribuído a um Robô, para que todos os trabalhos sejam executados de uma vez.
- Há menos do que sete Robôs disponíveis na hora do disparo, digamos quatro - É atribuído um trabalho para cada um dos quatro Robôs, se um novo Robô ou um desses quatro ficar disponível, ele assume outro trabalho dos três restantes. Isso acontece para cada Robô disponível até não haver mais trabalhos.
-
Se dois ou mais gatilhos estiverem executando o mesmo processo, cada um para um número diferente de vezes, no próximo gatilho, o número máximo de trabalhos entre eles é adicionado à carga de trabalho do ambiente; eles não se acumulam. Imagine a seguinte situação: o gatilho A executa um processo 13 vezes e o gatilho B o executa 20 vezes. Os seguintes cenários podem ocorrer:
- Um gatilho A e B simultaneamente – 20 trabalhos (o máximo entre 13 e 20) serão enfileirados na carga de trabalho do ambiente.
-
O B é disparado primeiro – 20 trabalhos serão enfileirados.
- Se entre a hora do gatilho B e a do gatilho A, sete ou mais trabalhos tiverem sido executados, digamos que nove (11 trabalhos pendentes restantes), então 13 trabalhos (o máximo entre 11 e 13) serão enfileirados na carga de trabalho do ambiente.
- Se entre a hora do gatilho B e a do gatilho A, menos do que sete trabalhos tiverem sido executados, digamos cinco (15 trabalhos pendentes restantes), então nenhum trabalho será enfileirado pois já existem mais do que 13 trabalhos pendentes. Além disso, a seguinte mensagem será exibida: Os robôs já têm trabalhos pendentes para esse processo.
-
O A é disparado primeiro - 13 trabalhos serão enfileirados
- Sempre que B disparar durante a execução de A, uma quantidade de até 20 trabalhos será adicionada ao ambiente, dependendo de quantos trabalhos de A estiverem em progresso ou sendo executados. Digamos que seis trabalhos foram executados. Quando B disparar, 14 trabalhos serão adicionados, para que o máximo de 20 seja atingido.
-
Se um gatilho executar o mesmo processo várias vezes, os trabalhos enfileirados relacionados serão limitados ao número de execuções especificadas quando você definiu o gatilho, na guia Executar destino. Eles não se acumulam com cada disparo do gatilho.
Digamos que, a cada 30 minutos, você deseja executar o mesmo processo 10 vezes. A primeira vez que seu gatilho for disparado, 10 trabalhos serão enfileirados. Se, entre disparos, menos que 10 trabalhos forem executados (digamos, 4), no momento do próximo gatilho, apenas 6 novos trabalhos serão enfileirados, já que o número de trabalhos pendentes para esse processo pode ser de no máximo 10.
Pode iniciar instantaneamente um processo após a criação do gatilho ou sempre que você adicionar um novo item à sua fila. O gatilho é executado no ambiente associado ao processo selecionado. Há três opções que ajudam você a parametrizar as regras para o disparo de processos:
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 2 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). |
O Orchestrator leva em consideração os itens de fila Novos e Em andamento ao calcular o número de trabalhos de destino que devem ser alcançados para alocação ideal de recursos.
Exemplo
- Digamos que você adicione 3 itens de fila à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens e itens em progresso => 3 trabalhos de destino são necessários. O Orchestrator inicia 3 trabalhos para processar os 3 itens da fila. Os 3 itens passam para o estado Em progresso.
- Adicione mais 2 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens e itens em progresso => 5 (3+2) trabalhos de destino são necessários. O Orchestrator inicia 2 novos trabalhos para atingir o alvo de 5.
Queue.ProcessActivationSchedule
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.
Exemplo
Tenho dois trabalhos:
- Um que adiciona 3 itens por segundo por 20 segundos na fila de destino (60 itens no total).
- Um que processa 1 item por segundo da fila de destino.
Defini meu gatilho da seguinte maneira:
- 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 item.
Inicio o trabalho que adiciona itens à minha 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. Isso significa 15 itens em 20 segundos processados por três trabalhos.
Isso significa que restam 45 itens a serem processados (60 - 15). Com 3 trabalhos, cada um processando 1 item por segundo, isso significa que são necessários 15 segundos para que o restante seja processado.
Um total de 35 segundos.
Triggers.JobsCountStrategy
permite que você escolha a estratégia para iniciar trabalhos por meio de gatilhos. As seguintes opções estão disponíveis:
PerProcess
- Um gatilho inicia o número necessário de trabalhos, levando em consideração quaisquer trabalhos pendentes para o processo especificado. Por exemplo, dois gatilhos definidos para o mesmo processo iniciam três e cinco trabalhos, respectivamente. Se o primeiro gatilho iniciar três trabalhos em um determinado momento, quando o segundo gatilho for acionado, dois trabalhos serão iniciados para atingir os cinco trabalhos necessários.PerTrigger
- Um gatilho inicia o número necessário de trabalhos, levando em consideração quaisquer trabalhos existentes iniciados anteriormente pelo mesmo gatilho. Por exemplo, um gatilho é definido para iniciar nove trabalhos em um determinado momento. Se dois trabalhos tiverem sido concluídos com sucesso no momento em que esse gatilho for acionado novamente, o Orchestrator iniciará outros dois trabalhos, para atingir os nove trabalhos necessários.NoLimit
- O gatilho inicia o número necessário de trabalhos, independentemente de quaisquer trabalhos existentes pendentes. Por exemplo, um gatilho é definido para iniciar cinco trabalhos em um determinado momento. Na segunda vez em que o gatilho for acionado, outros cinco trabalhos serão iniciados.
Isso permite que você defina várias listas de dias não úteis, por tenant, tendo cada um seu próprio conjunto de datas, nas quais você pode configurar seus gatilhos para não serem executados, se necessário. Isso significa que, durante feriados, fins de semana ou qualquer outro dia em que atividades de negócios normais não são realizadas, seus gatilhos de longa execução podem ser configurados para que não sejam iniciados. Você pode definir ou carregar esses calendários na guia Dias não úteis, na página Configurações. Um calendário BankHoliday é criado por padrão para ajudar a definir seus primeiros dias não úteis mais facilmente. Após o término dos dias não úteis definidos no calendário selecionado, o gatilho dispara como de costume.
Para aplicar qualquer uma dessas restrições em seus gatilhos, é necessário selecionar o calendário desejado no menu suspenso Restrições de dias não úteis ao criar um novo gatilho ou editar um existente. Você pode selecionar apenas um calendário para um gatilho. Observe que editar um calendário na guia Dias não úteis também afeta gatilhos que já têm esse calendário selecionado no menu suspenso Restrições de dias não úteis.
Para obter mais detalhes sobre como gerenciar dias não úteis, clique aqui.
Observe que a adição e remoção de dias não úteis são auditadas no nível do tenant.