Como é que o Assistente Echo efetua o agendamento das tasks?
As tasks podem ser agendadas de forma automática ou manual. O agendamento manual pode acontecer na sequência da ocorrência de determinados eventos no ERP ou quando o utilizador o faz explicitamente no Monitor de Operações do Assistente Echo. Agendar uma task, neste contexto, significa que é inserido um novo registo na tabela BotWorkQueueItems e a sua prioridade revista periodicamente. O processo de agendamento de tasks pode ser dividido em dois passos: Pipeline LoadWorkQueue Nesta pipeline encontra-se o handler ManageWorkQueue que itera por todos os topics/tasks e verifica a necessidade da sua execução. Uma execução é necessária quando as seguintes condições se verificam: Se todas as condições se verificarem então é inserido um registo na tabela BotWorkQueueItems com o estado 0 (Pronta). Pipeline ScheduleTasks Esta pipeline é executada a cada hora e contém os handlers LoadWorkQueueItems e SchedulePendingTasks. Em conjunto, estes handlers são responsáveis pela alteração da prioridade dos registos existentes na tabela BotWorkQueueItems. Este processo decorre da seguinte forma: Nota: a tolerância define o limite até ao qual a task deve ser executada e a resiliência define o comportamento caso ocorram erros de execução, podendo ser configurado para repetir a execução da task dentro de um determinado período de tempo até a um limite de falhas de execução. O agendamento das tasks pode ser efetuado manualmente, recorrendo ao Monitor de Operações do Assistente Echo, ou quando ocorrem determinados eventos no ERP, por exemplo quando existe uma alteração de preço num documento de vendas. Nesta situação, o estado da task criada na tabela BotWorkQueueItems é o 4 (Pendente) e a sua prioridade é definida como 1000.Agendamento Automático
Agendamento Manual e na Sequência de Eventos