Em algumas situações esporádicas, o BotCity Runner pode parecer travado após buscar uma nova tarefa da fila. Nesses casos, o status fica parado em:
Executing task...
e a automação não é iniciada, sendo necessário reiniciar manualmente o Runner para que ele volte a funcionar corretamente.
Esse problema geralmente está relacionado ao uso de recursos que não foram finalizados corretamente na execução anterior. Quando o código tenta reutilizar esses mesmos recursos, o sistema operacional identifica um conflito, pois entende que eles ainda estão "em uso".
Um caso muito comum ocorre com o uso do WebDriver em automações Web:
Se o WebDriver não for encerrado corretamente, ele pode continuar sendo executado em segundo plano.
Isso impede a criação de novas instâncias na próxima execução, causando o travamento do Runner.
Implemente boas práticas no seu código para garantir que todos os recursos utilizados pela automação sejam encerrados corretamente, mesmo em casos de exceção.
Exemplo em Python:
from selenium import webdriver
driver = webdriver.Chrome()
driver = webdriver.Chrome()
try:
# lógica da automação
pass
finally:
driver.quit()
driver.quit() # garante que o WebDriver será encerrado
Usar blocos try...finally
ajuda a manter o ambiente limpo entre as execuções.
Depois que uma tarefa é coletada para execução, ela passa para o status Running
. É responsabilidade do desenvolvedor informar ao BotCity Maestro o status final da tarefa utilizando o SDK do Maestro.
Essa etapa permite:
Melhor controle sobre as execuções
Visualização clara dos resultados no portal Maestro
Geração de métricas no módulo BotCity Insights
SUCCESS
: Tarefa concluída com sucesso.
FAILED
: A tarefa não foi concluída.
PARTIALLY_COMPLETED
: Apenas parte das etapas foram concluídas.
maestro.finish_task(
task_id=task.id,
status=
status=AutomationTaskFinishStatus.SUCCESS,
message=
message="Tarefa foi concluída com sucesso.",
total_items=
total_items=100, # Total de itens processados
processed_items=90, # Itens processados com sucesso
failed_items=10 # Itens processados com falha
)
Um "item" pode representar qualquer entidade no seu processo (ex: registros, arquivos, requisições etc.), e você pode usar a lógica que fizer sentido para o seu caso.
Esses dados são utilizados pelo módulo BotCity Insights, que oferece dashboards e indicadores em tempo real sobre suas iniciativas de RPA.
Sempre que notar que o Runner travou, consulte o arquivo log.txt
gerado durante a execução. Ele pode conter mensagens de erro ou exceções que ajudam a identificar o que impediu a tarefa de iniciar corretamente.
Se o Runner ficar preso no status "Executing task...", o mais provável é que recursos não tenham sido liberados corretamente em execuções anteriores. Garantir o encerramento adequado desses recursos e finalizar a tarefa corretamente via SDK do Maestro evita esse tipo de problema e ainda contribui para uma visão mais eficiente do desempenho da sua automação no BotCity Insights.